Я пытаюсь принять среднее значение дат по группам.
import pandas as pd
df = pd.DataFrame({'Id': ['A', 'A', 'B', 'B'],
'Date': [pd.datetime(2000, 12, 31), pd.datetime(2002, 12, 31),
pd.datetime(2000, 6, 30), pd.datetime(2002, 6, 30)]})
Это всегда было трудной задачей, поэтому мне было приятно узнать, что это явно было исправлено в pandas 0.25 Объекты Datetime с pandas Среднее значение .
df['Date'].mean()
Out[45]: Timestamp('2001-09-30 00:00:00') # This works
Однако это нельзя сделать с помощью «groupby»
df.groupby('Id')['Date'].mean()
Traceback (most recent call last):
File "<ipython-input-46-5fae5ffac6c6>", line 1, in <module>
df.groupby('Id')['Date'].mean()
File "C:\Users\xxx\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\groupby\groupby.py", line 1205, in mean
"mean", alt=lambda x, axis: Series(x).mean(**kwargs), **kwargs
File "C:\Users\xxx\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\groupby\groupby.py", line 888, in _cython_agg_general
raise DataError("No numeric types to aggregate")
DataError: No numeric types to aggregate
Что здесь происходит, и есть ли легкий обходной путь?