我希望你一切安好。我是新来的。我正在尝试添加某些列,但不是全部,我需要您的帮助。
W=[[77432664,6,2,4,3,4,3],
[6233234,7,3,2,5,3,1],
[3412455221,8,3,2,4,5,5]]
rows=len(W)
columns=len(W[0])
for i in range(rows):
T=sum(W[i])
W[i].append(T)
我假设"添加"是指"总和"而不是"插入"。如果是这样,那么您可以使用所谓的切片:
for row in rows:
t = sum(row[1:])
row.append(t)
row[1:]
将列表的第一个元素以外的所有元素row
。有关此语法的更多信息,您应该谷歌"python slice"。
另请注意我如何直接迭代行,而不是使用索引。这是在 Python 中执行循环的最常见方法。
您可以通过指定列范围在 python 中创建子数组,然后将其添加。下面的代码演示了在 Python 中添加第 2,3,4,5,6 列。
W=[[77432664,6,2,4,3,4,3],
[6233234,7,3,2,5,3,1],
[3412455221,8,3,2,4,5,5]]
rows=len(W)
columns=len(W[0])
for i in range(rows):
T=sum(W[i][2:6]) #For i=0 it retreives subarray [2,4,3,4,3] then add it to get T=16
W[i].append(T)
我建议使用 over axis=0 的熊猫总和方法:
# numeric of columns
my_cols_n = [2,3,4,5,6]
# Get cols by name
my_cols = [x for x,i in enumerate(list(df.columns)) if i in my_cols_n]
# Get Sum
df["my_sum"] = df[my_cols].sum(axis=0)
要添加到@Code学徒答案中 - 请考虑将numpy
用于类似的作业:
import numpy as np
W=[[77432664,6,2,4,3,4,3],
[6233234,7,3,2,5,3,1],
[3412455221,8,3,2,4,5,5]]
W=np.array(W)
>>> print(W[:, 3:].mean(axis=1))
[3.5 2.75 4. ]
特别是随着矩阵运算复杂性的增长 - 您将很快看到numpy
的巨大优势