我有以下数据框:
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
要添加一个新列,该列为、和'e'列的总和,您可以使用方法。此方法对指定轴上的值求和,并对行(水平)求和。'a'``'b'``'d'``.sum(axis=1)``axis=1
'a'``'b'``'d'``.sum(axis=1)``axis=1
您可以按照以下方式操作:
df['e'] = df[['a', 'b', 'd']].sum(axis=1)
这将为您提供所需的结果:
In [1]: df = pd.DataFrame({'a': [1, 2, 3], 'b': [2, 3, 4], 'c': ['dd', 'ee', 'ff'], 'd': [5, 9, 1]}) df['e'] = df[['a', 'b', 'd']].sum(axis=1) df Out [1]: a b c d e 0 1 2 dd 5 8 1 2 3 ee 9 14 2 3 4 ff 1 8
关键是使用sum(axis=1)按行对选定的列求和。这种.map(sum)方法不起作用,因为.map()它通常用于按元素应用函数,而不是跨行或跨列。
sum(axis=1)
.map(sum)
.map()