我有一个数据框

Id  Brand1  Brand2  Brand3   Brand4  Brand5
1    1       0       0        1        1
2    1       0       0        0        0
3    1       0       0        0        0
4    1       1       0        1        0


我也有关于每个品牌类别的字典。

categorydict = {'General': ['Brand1', 'Brand2', 'Brand3'],
 'Fueloil': ['Brand4',  'Brand5']}


现在,我想为我的categorydict中每个类别的表添加新字段,并为每个id添加值的总和。

Id  Brand1  Brand2  Brand3   Brand4  Brand5  General  FuelOil
1    1       0       0        1        1       1        2
2    1       0       0        0        0       1        0
3    1       0       0        0        0       1        0
4    1       1       0        1        0       2        1


我找不到我应该使用的方法,将不胜感激

最佳答案

按字典循环并按sum填充的键创建新列:

for k, v in categorydict.items():
    df[k] = df.loc[:, v].sum(axis=1)

print (df)
   Id  Brand1  Brand2  Brand3  Brand4  Brand5  General  Fueloil
0   1       1       0       0       1       1        1        2
1   2       1       0       0       0       0        1        0
2   3       1       0       0       0       0        1        0
3   4       1       1       0       1       0        2        1

09-07 10:36