通过pandas中数据框中的列中的重复值进行聚合

时间:2015-04-17 13:54:44

标签: python pandas

我的数据框如下:

             value     identifier
2007-01-01  0.781611      55
2007-01-01  0.766152      56
2007-01-01  0.766152      57
2007-02-01  0.705615      55
2007-02-01  0.032134      56
2007-02-01  0.032134      57
2008-01-01  0.026512      55
2008-01-01  0.993124      56
2008-01-01  0.993124      57
2008-02-01  0.226420      55
2008-02-01  0.033860      56
2008-02-01  0.033860      57

如何通过标识符列中的值进行聚合,如下所示:

           value  
2007-01-01  0.766  # (average of identifiers 55, 56 and 57 for this date)
2007-02-01  0.25   
2008-01-01  etc... 
2008-02-01  

1 个答案:

答案 0 :(得分:1)

如果您的索引是日期时间,那么您可以访问.date属性,如果不是,您可以使用df.index = pd.to_datetime(df.index)转换它,然后在日期执行groupby并计算均值:

In [214]:

df.groupby(df.index.date)['value'].mean()
Out[214]:
2007-01-01    0.771305
2007-02-01    0.256628
2008-01-01    0.670920
2008-02-01    0.098047
Name: value, dtype: float64