python - 对多个 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)])
)
解决方案
为条件和列列表创建掩码,然后使用sum
and mean
。
m = my_data['Best of']==3
cols = ['W1','W2','W3','L1','L2','L3']
print( my_data.loc[m, cols].sum().mean() )