繁体   English   中英

汇总CSV文件中的特定列

[英]Sum specific columns in a CSV file

我有一个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  

谢谢,

在熊猫中,这非常非常容易:

import pandas as pd
df = pd.read_csv(filename)
df[df.columns[4:]].sum()

如果您想要每行的总和,就是这样:

df[df.columns[4:]].sum(1)

如果要对连续的行求和,则可以

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM