我有一个包含100列的csv文件。我想要计算第4列到第n列的总和。我可以生成单个列的总和,但当我尝试所有列的总和时,我失败了。这是我到目前为止所掌握的
import decimal
import numpy as np
import os as os
import csv as csv
import re as re
import sys
col=10
values=[]
with open('test.csv', 'r') as f:
reader = csv.reader(f)
headers = reader.next()
for line in reader:
#print line
line = [int(i) for i in line]
col_totals = [sum(result) for result in zip(*line)]
print col_totals
#values.append(int(line[col]))
#csum=sum(values)
#print csum
谢谢,
发布于 2014-10-29 21:13:26
这在熊猫身上是非常非常容易的:
import pandas as pd
df = pd.read_csv(filename)
df[df.columns[4:]].sum()
如果您想要每行列的总和,则如下所示:
df[df.columns[4:]].sum(1)
发布于 2014-10-29 20:48:05
如果您想要对连续行进行求和,则可以这样做
i, j = 3, 5
with open('test.csv', 'r') as f:
reader = csv.reader(f)
headers = reader.next()
table = list(reader)
sums = [sum(float(elt) for elt in col) for col in zip(*table)[i:j]]
还可以尝试执行以下操作
requested = [4, 7, 12, 13, 21, 81]
with open('test.csv', 'r') as f:
reader = csv.reader(f)
headers = reader.next()
table = list(reader)
sums = [sum(float(elt) for elt in col) for i, col in enumerate(zip(*table)) if i in requested]
https://stackoverflow.com/questions/26639129
复制