Skip to main content
 首页 » 编程设计

python之groupby 和平均 datetime64

2025年05月04日15findumars

如何在 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() 

应该“正常工作”。