我想平均第三列以后

  • 本文关键字:三列 python
  • 更新时间 :
  • 英文 :


我希望你一切安好。我是新来的。我正在尝试添加某些列,但不是全部,我需要您的帮助。

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的巨大优势

最新更新