2016-09-20 65 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模塊的解決方案感興趣!任何人?