Python / Pandas - 如何为每行依赖于单元格值赋值

时间:2017-07-06 11:24:58

标签: 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

我需要最有效的解决方案,任何想法?

1 个答案:

答案 0 :(得分:4)

axis=1每行使用replace sumint最后转换为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