我在列表中保存了列名:
col_names = ["Col1","Col5",...]
现在我想创建一个新列“Total”,并为每一行添加col_names
中列的值。
我应该使用for循环还是有任何功能可以完成这项工作?
答案 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]]