我正在尝试对 pandas df 中的列求和,其中该列等于特定值。使用下面的 df,其中['X'] == 'GrV',我想对 cols 求和('GrV A', 'GrV B')。但我正在返回nan值。
import pandas as pd
df = pd.DataFrame({
'X' : ['GrV', 'GrX', 'GrY', 'GrZ', 'GrV', 'GrX', 'GrY', 'GrZ'],
'GrV A' : [4, 2, 6, 5, 1, 2, 5, 6],
'GrX A' : [3, 4, 5, 1, 2, 5, 6, 2],
'GrY A' : [5, 2, 2, 6, 5, 1, 5, 4],
'GrZ A' : [1, 2, 5, 5, 2, 1, 5, 4],
'GrV B' : [4, 2, 6, 5, 1, 2, 5, 6],
'GrX B' : [3, 4, 5, 1, 2, 5, 6, 2],
'GrY B' : [5, 2, 2, 6, 5, 1, 5, 4],
'GrZ B' : [1, 2, 5, 5, 2, 1, 5, 4],
})
df['Total'] = df.loc[(df['X'] == 'GrV'), ('GrV A', 'GrV B')].sum()
df['Total'] = df.loc[(df['X'] == 'GrX'), ('GrX A', 'GrX B')].sum()
df['Total'] = df.loc[(df['X'] == 'GrY'), ('GrY A', 'GrY B')].sum()
df['Total'] = df.loc[(df['X'] == 'GrZ'), ('GrZ A', 'GrZ B')].sum()
预期输出:
X GrV A GrX A GrY A GrZ A GrV B GrX B GrY B GrZ B Total
0 GrV 4 3 5 1 4 3 5 1 8
1 GrX 2 4 2 2 2 4 2 2 8
2 GrY 6 5 2 5 6 5 2 5 4
3 GrZ 5 1 6 5 5 1 6 5 10
4 GrV 1 2 5 2 1 2 5 2 2
5 GrX 2 5 1 1 2 5 1 1 10
6 GrY 5 6 5 5 5 6 5 5 10
7 GrZ 6 2 4 4 6 2 4 4 8
慕尼黑8549860
三国纷争
米琪卡哇伊
慕田峪4524236
相关分类