2016-07-23 3 views
0

私はcsvから読み込むPythonスクリプトを書こうと思っています。 CSVは2つの列で構成されています。スクリプトを最初の列から行ごとに読み込み、2番目の行で対応する値を探します。 2番目の行の値を見つけたら、3番目の列に値を入力します。Python csv検索スクリプト

example of output

これですべてのヘルプははるかに高く評価されるだろうと私は私の目的が明らかであると思います。あまりにもあいまいであれば、事前に謝罪してください。

+3

ようこそStackOverflowへ。ここでのアイデアは、人々にあなたのためのコードを書かせるのではなく、助けてくれる場所を得ることです。あなたが何を試していたのか、どこに問題があったのか教えてください。 – acrosman

+0

パンダを使ってcsvをテーブルとして読むことができます。次に、http://stackoverflow.com/questions/17841149/pandas-groupby-how-to-get-a-union-of-stringsのような文字列concatanationでgroup byを使用し、元のテーブルと新しいテーブルを結合します。興味があれば、答えとしてコードを書くことができます。 –

答えて

0

このスクリプトはtest.csvファイルを読み込み、OUTPUT.txt

f = open("test.csv","r") 
d={} 
s={} 
for line in f: 
     l=line.split(",") 
     if not l[0] in d: 
       d[l[0]]=l[1].rstrip() 
       s[l[0]]='' 
     else: 
       s[l[0]]+=str(";")+str(l[1].rstrip()) 

w=open("OUTPUT.txt","w") 
w.write("%-10s %-10s %-10s\r\n" % ("ID","PARENTID","Atachment")) 
for i in d.keys(): 
     w.write("%-10s %-10s %-10s\r\n" % (i,d[i],s[i])) 

f.close() 
w.close() 

例に書き込み、それを解析:

入力:

1,123 
2,456 
1,333 
3, 
1,asas 
1,333 
000001,sasa 
1,ss 
1023265,333 
0221212, 
000001,sasa2 
000001,sas4 

OUTPUT:

ID   PARENTID Atachment 
000001  sasa  ;sasa2;sas4 
1023265 333     
1   123  ;333;asas;333;ss 
3        
2   456     
0221212 
+0

ありがとう@Babyy、if notとelseの部分を説明してください。私は正確にdとsが何を意味し、何[l [0]] + = str( ";")+ str(l [1] .rstrip())が何をしているのかは不明です。 – sharpie

関連する問題