列日期到与熊猫的宿舍

时间:2019-03-26 12:39:38

标签: python pandas

我有一个带有这些列的pandas数据框(重要的是我从1996-04到2016-08的每个月都有)

Index(['RegionID', 'RegionName', 'State', 'Metro', 'CountyName', 'SizeRank',
'1996-04', '1996-05', '1996-06', '1996-07',
 ...
'2015-11', '2015-12', '2016-01', '2016-02', '2016-03', '2016-04',
'2016-05', '2016-06', '2016-07', '2016-08'],
dtype='object', length=251)

我需要将三列分组以代表财务季度,例如:

| 1998-01 | 1999-02 | 1999-03 |
|    2    |    4    |    7    |

需要成为

|  1998q1  |
|avg(2,4,7)|

关于正确方法的任何提示吗?

1 个答案:

答案 0 :(得分:1)

首先将所有非日期列转换为索引,将它们转换为quarter period并按mean按列进行汇总:

df = df.set_index(['RegionID', 'RegionName', 'State', 'Metro', 'CountyName', 'SizeRank'])
df.columns = pd.to_datetime(df.columns).to_period('Q').strftime('%Yq%q')
df = df.groupby(level=0, axis=1).mean().reset_index()