如何总结特定列中的值

时间:2015-10-16 14:54:21

标签: python pandas

我在列表中保存了列名:

col_names = ["Col1","Col5",...]

现在我想创建一个新列“Total”,并为每一行添加col_names中列的值。

我应该使用for循环还是有任何功能可以完成这项工作?

2 个答案:

答案 0 :(得分:3)

您可以使用列表索引到数据框中,然后在列之间求和(axis = 1):

>>> df = pd.DataFrame(np.random.randint(0, 10, (5,5)), columns=["Col{}".format(i) for i in range(1,6)])
>>> df
   Col1  Col2  Col3  Col4  Col5
0     4     7     3     5     6
1     2     1     3     7     9
2     4     7     8     0     1
3     0     4     1     1     3
4     5     8     1     5     7
>>> col_names = ["Col1", "Col5"]
>>> df[col_names]
   Col1  Col5
0     4     6
1     2     9
2     4     1
3     0     3
4     5     7
>>> df["Total"] = df[col_names].sum(axis=1)
>>> df
   Col1  Col2  Col3  Col4  Col5  Total
0     4     7     3     5     6     10
1     2     1     3     7     9     11
2     4     7     8     0     1      5
3     0     4     1     1     3      3
4     5     8     1     5     7     12

答案 1 :(得分:0)

示例:

m = [[1,2,3],
    [4,5,6],
    [7,8,9],
    ]

new_n = []    
for c in m:
    new_n.append(c + [sum(c)])

print new_n

<强>输出:

[[1, 2, 3, 6], [4, 5, 6, 15], [7, 8, 9, 24]]