Python/Pandas-如何根据单元格值为每行赋值

Python/Pandas-如何根据单元格值为每行赋值,python,pandas,Python,Pandas,我有这样的数据框: x y z 0 AA BB CC 1 BB NaN CC 2 BB AA NaN 和字典: d = {'AA': 1, 'BB': 2, 'CC': 3} 我想将每个单元格中的值与dictionary中的值进行比较,并为每一行添加另一个包含这些值总和的新列。因此,我需要这样的东西: x y z sum 0 AA BB CC 6 1 BB NaN CC 5 2 BB AA NaN 3 我需要最有效的解决方案,有什么想法吗?通过ax

我有这样的数据框:

  x  y   z
0 AA BB  CC
1 BB NaN CC
2 BB AA  NaN
和字典:

d = {'AA': 1, 'BB': 2, 'CC': 3}
我想将每个单元格中的值与dictionary中的值进行比较,并为每一行添加另一个包含这些值总和的新列。因此,我需要这样的东西:

  x  y   z   sum
0 AA BB  CC   6
1 BB NaN CC   5
2 BB AA  NaN  3
我需要最有效的解决方案,有什么想法吗?

通过
axis=1使用每行,最后通过以下方式转换为
int


第一部分是有效的,但当我想对结果中的值求和时,每行的值都是0。我做错了什么?嗯,那么
用数字打印(df.replace(d))
返回
DataFrame
?什么是
print(df.replace(d).dtypes)
?什么是return
print(df.replace(d).sum(axis=1))
-所有值都是0或一些浮点值?1。是“打印(df.replace(d))”返回带有数字的“数据帧”。2类型为“对象”。三。所有值均为“0.0”。工作正常。我的字典中缺少一个键。
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