我想知道是否有更好的方法根据重复模式对列进行分组,然后应用函数。简单的版本是我有几个月的数据,但希望它在季度。为了达到目的,我需要每3个月一次并应用mean()
RegionName State 1997-01 1997-02 1997-03 1997-04 1997-05 1997-06
1 Los Angeles CA 83 19 40 47 76 48
2 Chicago IL 39 87 48 3 71 18
3 Philadelphia PA 60 85 8 46 81 48
期望的结果是:
RegionName State 1997q1 1997q2
1 Los Angeles CA 47.33333333 57
2 Chicago IL 58 30.66666667
3 Philadelphia PA 51 58.33333333
我有一种非常讨厌的方法,使用python循环和一个预先制作的数字列表:
quartersbyendingdigit = {'1':'q1', '4':'q2', '7':'q3', '0':'q4'}
rl = list(range(2, housingdf.shape[1], 3))
for each in rl:
og_column = housingdf.columns[each]
new_column = og_column[:4] + quartersbyendingdigit[ og_column[-1] ]
housingdf[new_column] = (housingdf[housingdf.columns[each]] + housingdf[housingdf.columns[each+1]] + housingdf[housingdf.columns[each+2]])/3
我必须想象熊猫有更好的方法,因为它是一个非常明显的模式。