我有这样的数据框:
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
我需要最有效的解决方案,任何想法?
答案 0 :(得分:4)
axis=1
每行使用replace
sum
,int
最后转换为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
:
Sub Paste_Special()
On Error Resume Next
If Err = 1004 Then
Exit Sub
Else
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End If
Err.Clear
On Error GoTo 0
End Sub