这是我的数据框
Date Name Speed
02-03-2021 Jack 40
02-03-2021 Mary 32
02-03-2021 Jack 41
02-04-2021 Mary 35
以及 2 月的更多日期和数据
然后在三月
03-01-2021 Jack 44
03-01-2021 Mary 38
03-02-2021 Jack 43
03-02-2021 Mary 34
以及三月的更多日期
我想按月分组,然后命名并得到相同的平均值
所以最终的数据框应该看起来像
Date Name Speed
Feb Jack x (some avg calculated value)
Feb Mary y (some avg calculated value)
March Jack z (some avg calculated value)
March Mary w (some avg calculated value)
这是我的方法
首先使用 pd.to_datetime 转换日期列
df['Date']=pd.to_datetime(df['Date'],format="%Y-%m-%d")
df_month = df.groupby(pd.Grouper(freq='M'))
df_final = df_month.groupby('Name').mean()
2 个问题
df_month = df.groupby(pd.Grouper(freq='M'))
File "/opt/bb/lib/python3.7/site-packages/pandas/core/generic.py", line 7632, in groupby
observed=observed, **kwargs)
File "/opt/bb/lib/python3.7/site-packages/pandas/core/groupby/groupby.py", line 2110, in groupby
return klass(obj, by, **kwds)
File "/opt/bb/lib/python3.7/site-packages/pandas/core/groupby/groupby.py", line 360, in __init__
mutated=self.mutated)
File "/opt/bb/lib/python3.7/site-packages/pandas/core/groupby/grouper.py", line 478, in _get_grouper
binner, grouper, obj = key._get_grouper(obj, validate=False)
File "/opt/bb/lib/python3.7/site-packages/pandas/core/resample.py", line 1384, in _get_grouper
r = self._get_resampler(obj)
File "/opt/bb/lib/python3.7/site-packages/pandas/core/resample.py", line 1380, in _get_resampler
"but got an instance of %r" % type(ax).__name__)
TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Int64Index'