私はcsvファイルにsome、foo、barと私は別のリストを持っています。すべてのリストで可能ですが、同じcsvファイルに行を作成し、 'key'が存在する場合は1を、それ以外の場合は0を設定します。この場合、csvファイルの結果は次のようになります。リストにcsvファイルの要素が含まれていないか確認してください。
some,foo,bar
1,0,1
私はcsvファイルにsome、foo、barと私は別のリストを持っています。すべてのリストで可能ですが、同じcsvファイルに行を作成し、 'key'が存在する場合は1を、それ以外の場合は0を設定します。この場合、csvファイルの結果は次のようになります。リストにcsvファイルの要素が含まれていないか確認してください。
some,foo,bar
1,0,1
キーを列名として作成できます。
csv = {
"some" : [],
"foo" : [],
"bar" : []
}
ここで、各リストについて、値が辞書のキーにあるかどうかをチェックし、必要に応じて追加します。
for list in lists:
for key in csv.keys():
if key in list:
csv[key].append(1)
else:
csv[key].append(0)
パンダを使用したアプローチが1つあります。
のはexample.csv
のコンテキストを言ってみましょうは、次のとおりです。
some,foo,bar
はその後、我々はしてサンプルデータを表すことができます。
import pandas as pd
keys = ["att1","some","bar","try","other"]
data = pd.read_csv('~/Desktop/example.csv', header=None)
print(data)
0 1 2
0 some foo bar
matches = data.apply(lambda x: x.isin(keys).astype(int))
print(matches)
0 1 2
0 1 0 1
newdata = pd.concat([data, matches])
print(newdata)
0 1 2
0 some foo bar
0 1 0 1
今すぐ戻ってCSVへの書き込み:
data
と
keys
考える
newdata.to_csv('example.csv', index=False, header=False)
# example.csv contents
some,foo,bar
1,0,1
、すべてを1つの連鎖コマンドに集約することができます。
(pd.concat([data,
data.apply(lambda x: x.isin(keys).astype(int))
])
.to_csv('example1.csv', index=False, header=False))
はい、可能です。ほとんどのものがあります。この問題を解決するために書いたコードはありますか? –
申し訳ありませんが、私は何も知らない@PaulCollingwood – Daniele