我得到了一组以下数据:
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
我被要求找到每列指定行/指定周数的总和,然后将这些数字绘制到条形图上以比较A-E。
假设我有我需要的行(例如df.iloc[2:4,:]
),我接下来该怎么办?我的假设是我需要创建一个包含每一列总和的单行掩码,但我不确定我是怎么做的。
我知道如何做最后一步(即.plot(kind='bar'
),我只需要知道获得所需总和的中间步骤。
答案 0 :(得分:4)
您可以按位置选择iloc
,sum
和Series.plot.bar
:
df.iloc[2:4].sum().plot.bar()
或者,如果想要按索引名称(这里是几周)选择,请使用loc
:
df.loc[2:4].sum().plot.bar()
差异是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()
答案 1 :(得分:2)