熊猫:在汇总某些值时使用groupby求和

躺下

我有以下熊猫数据框:

      Pasture  Surface
Farm                  
01     Sown 1        2
01     Sown 2        3
01    Natural        3
01        Hay        5
02       Sown        7

我想对农场进行分组,以这种方式,每个农场只有2个牧场值,sown并且not sown,第一个具有相对Pasture值中“已播种”的曲面的总和,第二个具有总和在所有其他。基本上我想获得的是:

      Pasture  Surface
Farm                  
01       Sown        5
     Not sown        8
02       Sown        7

我设法通过用相对的名称替换之前的名称,然后使用.groupby()来做到这一点,但是我想知道在.groupby()调用中是否有一种方法,或者在任何情况下都是最好的办法。谢谢!

(PS:这是我关于堆栈溢出的第一个问题,请让我知道我是否可以做得更好!)

广晃

我会做:

sown_or_not = np.where(df.Pasture.str.contains('Sown'), 'Sown', 'Not Sown')

df.groupby(['Farm', sown_or_not]).Surface.sum()

输出:

Farm          
1     Not Sown    8
      Sown        5
2     Sown        7
Name: Surface, dtype: int64

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章