Python/Pandas - 如何为每一行分配值,这取决于单元格值



我有这样的数据框:

x  y   z
0 AA BB  CC
1 BB NaN CC
2 BB AA  NaN

和字典:

d = {'AA': 1, 'BB': 2, 'CC': 3}

我想将每个单元格的值与字典中的值进行比较,并为每行添加另一个新列,其中包含这些值的总和。结果我需要这样的东西:

x  y   z   sum
0 AA BB  CC   6
1 BB NaN CC   5
2 BB AA  NaN  3

我需要最有效的解决方案,有什么想法吗?

使用replace每行sumaxis=1,最后转换为intastype

print (df.replace(d))
x    y    z
0  1  2.0  3.0
1  2  NaN  3.0
2  2  1.0  NaN
df['sum'] = df.replace(d).sum(axis=1).astype(int)
print (df)
x    y    z  sum
0  AA   BB   CC    6
1  BB  NaN   CC    5
2  BB   AA  NaN    3

最新更新