首页 > 解决方案 > 熊猫:仅对一列中的选定值求和

问题描述

我有一个数据集如下:

    Data   Quantity   Price  
0   P1     1          5   
1   P2     1          7
2   P3     2          3
3   P4     1          3
4   Total  5          18

我只想对上述数据框中的 P1、P2 和 P3 求和,而不是 P4 和 Total。这可以通过多行代码来完成,但如何使用 pandas.DataFrame.sum 来完成。我目前正在使用这种千行(大约)的数据集。任何线索将不胜感激。

我在其他链接上看到了条件总和,但找不到此类问题的解决方案。

标签: pythonpandassum

解决方案


boolean indexingorquery与选择列和 一起使用sum

s = df.loc[df['Data'].isin(['P1','P2','P3']), ['Quantity','Price']].sum()

或者:

s = df.query('Data == ["P1", "P2", "P3"]')[['Quantity','Price']].sum()

print (s)
Quantity     4
Price       15
dtype: int64

推荐阅读