私はcsvから読み込むPythonスクリプトを書こうと思っています。 CSVは2つの列で構成されています。スクリプトを最初の列から行ごとに読み込み、2番目の行で対応する値を探します。 2番目の行の値を見つけたら、3番目の列に値を入力します。Python csv検索スクリプト
これですべてのヘルプははるかに高く評価されるだろうと私は私の目的が明らかであると思います。あまりにもあいまいであれば、事前に謝罪してください。
私はcsvから読み込むPythonスクリプトを書こうと思っています。 CSVは2つの列で構成されています。スクリプトを最初の列から行ごとに読み込み、2番目の行で対応する値を探します。 2番目の行の値を見つけたら、3番目の列に値を入力します。Python csv検索スクリプト
これですべてのヘルプははるかに高く評価されるだろうと私は私の目的が明らかであると思います。あまりにもあいまいであれば、事前に謝罪してください。
このスクリプトは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
ありがとう@Babyy、if notとelseの部分を説明してください。私は正確にdとsが何を意味し、何[l [0]] + = str( ";")+ str(l [1] .rstrip())が何をしているのかは不明です。 – sharpie
ようこそStackOverflowへ。ここでのアイデアは、人々にあなたのためのコードを書かせるのではなく、助けてくれる場所を得ることです。あなたが何を試していたのか、どこに問題があったのか教えてください。 – acrosman
パンダを使ってcsvをテーブルとして読むことができます。次に、http://stackoverflow.com/questions/17841149/pandas-groupby-how-to-get-a-union-of-stringsのような文字列concatanationでgroup byを使用し、元のテーブルと新しいテーブルを結合します。興味があれば、答えとしてコードを書くことができます。 –