计算给定月份列的每个季度的平均值

时间:2016-11-30 04:03:44

标签: python pandas

假设我有一个包含10行和16列的Python Pandas数据帧。每行代表一种产品。第一列是产品ID。其他15列是

的售价
  

2010 / 01,2010 / 02,2010 / 03,2010 / 05,2010 / 06,2010 / 07,2010 / 08,2010 / 10,2010 / 11,2010 / 12,2011 / 01,2011 / 02 ,2011 / 03,2011 / 04,2011 / 05。

(列名是字符串,不是日期格式)现在我想计算每个季度的平均售价(2010年第二季度,2010年第二季度,2011年第二季度),我不知道如何处理它。 (请注意,2010/04年度,2010/09年度和2011/06年度缺少月份。)

上面的描述只是一个例子。因为这个数据集非常小。可以手动循环。但是,我使用的实际数据集是10730 * 202。因此,我无法手动检查实际丢失的月份或手动映射季度。我想知道我可以在这里应用什么有效的方式。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这应该有所帮助。

import pandas as pd
import numpy as np
rng = pd.DataFrame({'date': pd.date_range('1/1/2011', periods=72, freq='M'), 'value': np.arange(72)})
df = rng.groupby([rng.date.dt.quarter, rng.date.dt.year]) .mean()
df.index.names = ['quarter', 'year']
df.columns = ['mean']
print df


             mean
quarter year      
1       2011     1
        2012    13
        2013    25
        2014    37
        2015    49
        2016    61
2       2011     4
        2012    16
        2013    28
        2014    40
        2015    52
        2016    64
3       2011     7
        2012    19
        2013    31
        2014    43
        2015    55
        2016    67
4       2011    10
        2012    22
        2013    34
        2014    46
        2015    58
        2016    70
相关问题