大熊猫 - 跨日期列计算平均

时间:2019-02-01 21:24:24

标签: python pandas dataframe

我有一个数据集,其中有多个列,其名称为日期。一个例子在这里:

df = pd.DataFrame({'company': ['dell', 'microsoft', 'toshiba', 'apple'], 
               'measure': ['sales', 'speed', 'wait time', 'service'], 
               'category': ['laptop', 'tablet', 'smartphone', 'desktop'], 
               '10/6/2015': [234, 333, 456, 290], 
               '10/13/2015': [134, 154, 123, 177], 
               '10/20/2015': [57, 57, 63, 71]})

我想计算平均每月。因此,对于上面的例子,我想所期望的结果是:

     company    measure    category  201510
0       dell      sales      laptop  141.66
1  microsoft      speed      tablet  181.33
2    toshiba  wait time  smartphone  214.00
3      apple    service     desktop  179.33

201510df中三个日期列的平均值。是否可以使用groupby处理多个日期列?任何帮助将不胜感激,当涉及到python时,我是一个完整的newby。我应该使用的时间序列的方法或者是有一个简单的方法通过执行此pandas

1 个答案:

答案 0 :(得分:3)

使用filter like过滤列,然后将列转换为datetime并使用groupby

s=df.filter(like='/')
s.columns=pd.to_datetime(s.columns).strftime('%Y-%m')
pd.concat([df,s.groupby(level=0,axis=1).mean()],axis=1)
Out[229]: 
     company    measure     ...     10/20/2015     2015-10
0       dell      sales     ...             57  141.666667
1  microsoft      speed     ...             57  181.333333
2    toshiba  wait time     ...             63  214.000000
3      apple    service     ...             71  179.333333
[4 rows x 7 columns]