我想每三行取列的平均值c2,并将结果保存在新列中c3,以便每个平均值重复三次。这段代码可以完成这个工作:
import pandas as pd
df = pd.DataFrame({'c1': ['A', 'B','C','D','E','F'], 'c2': [1, 2, 3,3,4,5]})
nrow=3
temp=df['c2'].rolling(nrow).mean() #Take rolling mean
temp= temp[nrow-1::nrow] #Select mean value every 3 rows
temp=temp.loc[temp.index.repeat(nrow)] #Repeat each mean value 3 times
temp.index = range(0,len(df)) #Fix index
df['c3']=temp
print(df)
结果应c3为 [2,2,2,4,4,4] 列。还有比这5行代码更简单的方法吗?
胡子哥哥
相关分类