我有一个带有这些列的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)|
关于正确方法的任何提示吗?
答案 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()