我有以下数据框:
In [1]: df = pd.DataFrame({'a': [1, 2, 3], 'b': [2, 3, 4], 'c': ['dd', 'ee', 'ff'], 'd': [5, 9, 1]}) df Out [1]: a b c d 0 1 2 dd 5 1 2 3 ee 9 2 3 4 ff 1
我想添加一列,'e'它是列和的总和。'a'``'b'``'d'
'e'
'a'``'b'``'d'
穿过论坛,我认为这样的事情会起作用:
df['e'] = df[['a', 'b', 'd']].map(sum)
但它没有。
我想知道使用列列表['a', 'b', 'd']和df作为输入的适当操作。
['a', 'b', 'd']
df
您可以sum将参数设置axis=1为对行求和,这将忽略无数字列:
sum
axis=1
In [91]: df = pd.DataFrame({'a': [1,2,3], 'b': [2,3,4], 'c':['dd','ee','ff'], 'd':[5,9,1]}) df['e'] = df.sum(axis=1) df Out[91]: a b c d e 0 1 2 dd 5 8 1 2 3 ee 9 14 2 3 4 ff 1 8
如果您只想对特定列求和,则可以创建列列表并删除您不感兴趣的列:
In [98]: col_list= list(df) col_list.remove('d') col_list Out[98]: ['a', 'b', 'c'] In [99]: df['e'] = df[col_list].sum(axis=1) df Out[99]: a b c d e 0 1 2 dd 5 3 1 2 3 ee 9 5 2 3 4 ff 1 7