首页 > 解决方案 > 数据框中特定行的总和(熊猫)

问题描述

我得到了一组以下数据:

week  A      B      C      D      E
1     243    857    393    621    194
2     644    576    534    792    207
3     946    252    453    547    436
4     560    100    864    663    949
5     712    734    308    385    303

我被要求找到指定行/指定周数的每一列的总和,然后将这些数字绘制到条形图上以比较 AE。

假设我有我需要的行(例如df.iloc[2:4,:]),接下来我应该做什么?我的假设是我需要创建一个包含每一列总和的单行掩码,但我不确定我是如何去做的。

我知道如何做最后一步(即.plot(kind='bar'),我只需要知道中间步骤是什么以获得我需要的总和。

标签: pythonpython-3.xpandas

解决方案


您可以用于按位置选择ilocsum并且Series.plot.bar

df.iloc[2:4].sum().plot.bar()

图1

或者,如果想按索引名称(这里是几周)选择,请使用loc

df.loc[2:4].sum().plot.bar()

图2

区别是iloc排除最后一个位置:

print (df.loc[2:4])
        A    B    C    D    E
week                         
2     644  576  534  792  207
3     946  252  453  547  436
4     560  100  864  663  949

print (df.iloc[2:4])
        A    B    C    D    E
week                         
3     946  252  453  547  436
4     560  100  864  663  949

如果需要,还可以按位置过滤列:

df.iloc[2:4, :4].sum().plot.bar()  

并按名称(周):

df.loc[2:4, list('ABCD')].sum().plot.bar()

推荐阅读