我可以通过输入
来获得满足指定条件的数据帧中所有值的总和df.loc[(df[column_1] == value_1) & (df[column_2] == value_2), columnWithValues].sum()
我正在寻找一个简单的解决方案,它使用指定了列和值的集合。 是否有以下内容?
set_columns = set([column_1, column_2])
set_values = set([value_1, value_2])
df.loc[set_col == set_val, columnWithValues].sum()
这样,输入可以有任意数量的参数。
答案 0 :(得分:1)
你可以把列放在'要在列表中查询的名称,以及元组中的目标值;将列设置为数据框的索引,然后使用值进行查询:
columns = ['column_1', 'column_2']
values = ('value_1', 'value_2')
df.set_index(columns).loc[values, columnWithValues].sum()
实施例:
df = pd.DataFrame({
"A": [1,1,1,1,2,2,2,2],
"B": [1,1,2,2,3,3,4,4],
"C": [2,1,2,3,4,3,5,6],
"D": [5,3,2,1,6,7,8,9]
})
columns = ['A', 'B']
values = (2,4)
df.set_index(columns).loc[values, ['C','D']].sum()
#C 11
#D 17
#dtype: int64