熊猫集团六个月

时间:2019-12-29 21:50:13

标签: pandas dataframe date

你好吗?

我有两列数据集:

damesano    premio_dir
200810      0.00
200811      52639.97
200904      108775.58
200802      0.00
200707      0.00

我想按“ damesano”列进行分组,以便将其按年份分组,然后按学期分组,并对premio_dir列的值求和。

有人可以帮我吗?

1 个答案:

答案 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