首页 > 解决方案 > 对多个 Python Pandas 列求和,并带有一个条件

问题描述

我正在总结多个列(W1、W2、W3、L1、L2、L3),并在“最佳”列上设置一个条件,如下所示。它有效,但似乎有点啰嗦。有没有办法让总和更简洁?

print(
(
my_data[my_data['Best of']==3]['W1'].sum()+
my_data[my_data['Best of']==3]['W2'].sum()+
my_data[my_data['Best of']==3]['W3'].sum()+
my_data[my_data['Best of']==3]['L1'].sum()+
my_data[my_data['Best of']==3]['L2'].sum()+
my_data[my_data['Best of']==3]['L3'].sum())/len(my_data[my_data['Best of'].between(3, 3, inclusive=True)])
)

标签: pythonpandasdataframe

解决方案


为条件和列列表创建掩码,然后使用sumand mean

m = my_data['Best of']==3

cols = ['W1','W2','W3','L1','L2','L3']

print( my_data.loc[m, cols].sum().mean() )

推荐阅读