2016-09-20 172 views
0

我已经检查了许多解决方案,但我一直无法应用任何问题。在Python中将列添加到.CSV文件并计算值

我有一个.csv文件,如:

Header_A;Header_B 
    0;1 
    1;4 
    5;6 
    6;7 
    9;8 

现在我想另一列“Header_C” pythonically添加到它,并计算其值(x)从另外每第2列定义,所以像

def add(a, b): 
     x = a + b 
     return x 

其中x将柱Header_C的值和a,b是列Header_A和Header_B的总和。

结果应该是这样的:

Header_A;Header_B;Header_C 
    0;1;1 
    1;4;5 
    5;6;11 
    6;7;13 
    9;8;17 

如果可能的话,而无需安装额外的模块。输出可以是一个新的.csv文件。

非常感谢!

回答

0

pandas是您的解决方案:

import pandas as pd 

df = pd.read_csv('a.csv') 
df['Header_C'] = df['Header_A'] + df['Header_B'] 

df.to_csv('b.csv', sep=';', index=False) 

有关大熊猫的详细信息,请访问http://pandas.pydata.org/

+0

我遇到了熊猫,但我希望没有安装任何模块。也许CSV模块左右,但我找不到解决方案,我的问题在文档或其他地方 – Khaled

+0

我再次尝试你的例子,我得到这个错误:回溯(最近呼叫最后): 文件“”,行254,in run_nodebug df [“Header_C”] = df [“Header_A”] + df [“Header_B”]文件“D:\ Dropbox \ Python Projects \ CSV \ CSV mit Pandas.py”,第5行,在 ... KeyError:'Header_A' – Khaled

+0

我找到了原因。只需应用此更改:'df = pd.read_csv('a.csv',sep =';')' – zipa

0

我仍然得到了同样的错误,即使与线

df = pd.read_csv('a.csv', sep=';') 

但是你启发了我和让我觉得问题可能是头部!所以我尝试了一些东西,现在确实有效。 这里是全工作代码:

import pandas 
df = pandas.read_csv("a.csv", sep=';', names=['Header_A', 'Header_B'], header=0) 
df['Header_C'] = df["Header_A"] + df["Header_B"] 
df.to_csv("b.csv", sep=';', index=False) 

如果标题设置为NONE,Python的对待值作为字符串,这将导致这样的东西:

9 + 3 = 93 

如果设置标题= 0 ,你会覆盖它。我不确定我的解释是否准确,但现在该程序做我想要的!非常感谢!

但是,我仍然对使用CSV模块或纯粹的Python WITHOUT模块的解决方案感兴趣!任何人?