你好吗?
我有两列数据集:
damesano premio_dir
200810 0.00
200811 52639.97
200904 108775.58
200802 0.00
200707 0.00
我想按“ damesano”列进行分组,以便将其按年份分组,然后按学期分组,并对premio_dir列的值求和。
有人可以帮我吗?
答案 0 :(得分:0)
假设您已经定义了1月至6月和7月至12月的学期,那么您可以做的一件事是
df.groupby([df.damesano // 100, df.damesano % 100 > 6]).premio_dir.sum()
使用您的示例数据,得出以下结果,其中False
对应于弹簧,True
对应于弹簧:
In [52]: df.groupby([df.damesano // 100, df.damesano % 100 > 6]).premio_dir.sum()
Out[52]:
damesano damesano
2007 True 0.00
2008 False 0.00
True 52639.97
2009 False 108775.58
Name: premio_dir, dtype: float64
或者,通过重命名使结果看起来更好:
In [107]: df.groupby([df.damesano // 100, df.damesano % 100 > 6]).premio_dir.sum().rename_axis(['Year', 'Semester']).rename(('Spring', 'Fall').__getitem__, level=1)
Out[107]:
Year Semester
2007 Fall 0.00
2008 Spring 0.00
Fall 52639.97
2009 Spring 108775.58
Name: premio_dir, dtype: float64