我有以下数据框
"."
python中是否有一种方法可以平均一个月的值,并使该月的新值 即我想对1988-01年的值取平均值,并使其成为1988-01年的最终值。我尝试了groupby方法,但是没有用
MyFunctionApp
答案 0 :(得分:1)
使用Series.dt.to_period
创建的月份:
data['date'] = pd.to_datetime(data['date'])
new_df=data.groupby(data['date'].dt.to_period('m')).mean()
print (new_df)
value
date
1988-01 1.255101e+07
1989-01 1.841228e+07
1990-01 1.377096e+07
或使用DataFrame.resample
,并在必要时删除缺失的值:
new_df=data.resample('MS', on='date').mean().dropna()
print (new_df)
value
date
1988-01-01 1.255101e+07
1989-01-01 1.841228e+07
1990-01-01 1.377096e+07
或者您可以分别为MultiIndex
使用月份和年份:
new_df=data.groupby([data['date'].dt.year.rename('y'),
data['date'].dt.month.rename('m')]).mean()
print (new_df)
value
y m
1988 1 1.255101e+07
1989 1 1.841228e+07
1990 1 1.377096e+07