小能豆

Pandas:对给定列的 DataFrame 行求和

javascript

我有以下数据框:

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'

浏览论坛时,我认为这样的方法可行:

df['e'] = df[['a', 'b', 'd']].map(sum)

但事实并非如此。

我想知道使用列表['a', 'b', 'd']df输入进行适当的操作。


阅读 34

收藏
2024-08-27

共1个答案

小能豆

要添加一个新列,该列为、和'e'列的总和,您可以使用方法。此方法对指定轴上的值求和,并对行(水平)求和。'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()它通常用于按元素应用函数,而不是跨行或跨列。

2024-08-27