如何在 groupby 上获取平均日期
import pandas as pd
import numpy as np
df = pd.DataFrame ({'ID' : ['foo', 'bar'] * 5,
'VAL' : pd.date_range(start='4/1/2012', periods=10)})
ID VAL
foo 2012-04-01 00:00:00
bar 2012-04-02 00:00:00
bar 2012-04-04 00:00:00
foo 2012-04-05 00:00:00
bar 2012-04-06 00:00:00
foo 2012-04-07 00:00:00
bar 2012-04-08 00:00:00
foo 2012-04-09 00:00:00
bar 2012-04-10 00:00:00
期望的输出:
bar 06/04/2012
foo 05/04/2012
我该怎么做?
请您参考如下方法:
只是一个替代方案(将日期时间值查看为 int64,这是它们的存储方式,然后返回):
In [11]: df['VAL'].astype('int64').groupby(df['ID']).mean().astype('datetime64[ns]')
Out[11]:
ID
bar 2012-04-06
foo 2012-04-05
dtype: datetime64[ns]
由于我们在这里使用 View ,这应该比应用更高效/更快...
正如 Jeff 指出的:这在 master 中是固定的(因此 0.14.1):
df.groupby('ID').mean()
应该“正常工作”。
