2016-09-20 19 views
0

多くのソリューションをチェックしましたが、私の問題には適用できませんでした。Pythonで.CSVファイルに列を追加して値を計算する

私はこのような.csvファイル、持っている:今、私はpythonically最初の2列あたりから添加から(x)は、それに別の列「Header_C」を追加し、その値を計算したい

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

をxが列Header_Cの値と、Bとなり

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

等定義ので、何かが列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" ... 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なしモジュールのソリューションに興味があります!誰でも?

関連する問題