2015-04-17 59 views
1

我有一个数据帧,如下所示:骨料通过重复的值在在大熊猫数据帧的列

   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 
+0

请一次提出一个问题,你应该问另一个问题,而不是增加这个问题的范围,基本上它可以完成,但它有点奇怪,你可以试试这个:'g = pd.DataFrame(df.groupby (df.index.date)['value']。mean()) g.index = pd.to_datetime(g.index) month_value = g.groupby([g.index.year,g.index.month] )['value']。mean()' – EdChum

+0

谢谢,删除了第二个问题。要放入另一个。 – Ivan

回答

1

如果索引的日期时间,那么你可以访问.date属性,如果没有,您可以在使用df.index = pd.to_datetime(df.index)转换,然后在日期执行GROUPBY和calc平均:

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 
+0

它已经有一个日期时间索引,但无论如何感谢。 – Ivan

+0

如果索引的类型为'pd.Timestamp',则不需要添加'.date'参数。 – jkitchen

+0

这是日期时间,我还需要添加它吗? – Ivan