前提・実現したいこと
大規模なデータセットを処理しようとしています。そのデータセット内の処理に関する質問です。
1行ごとにtxtかcsvで出力をする処理を行おうとしています。
R,Python(pandas),awkなどいずれかでいいので解決する方法を教えて欲しいです。
実現したいこと
・ファイル名をその1行内の特定のカラム、ファイルの中身を特定のカラムとして1行ずつcsv, txt出力がしたい。
発生している問題・エラーメッセージ
cat 該当ファイル|awk '$1!=prev{close(out); out=$1".txt"; prev=$1}{sub(/[^\t]+\t/,""); {sub(/,"");print > out}'
問題(1)限定されたあるカラムをファイル出力はできますが、ファイル名(特定したファイル名としたいカラム)に/など記号が入った瞬間にエラーで処理が止まります。
問題(2)また、ファイルの中身があるカラム内と限定した処理はできていません。
該当のソースコード
cat 該当ファイル|awk '$1!=prev{close(out); out=$1".txt"; prev=$1}{sub(/[^\t]+\t/,""); {sub(/,"");print > out}'
#Pythonでやった場合(2019/10/26追記) import csv with open('対象データセット.csv') as csvfile: for i, line in enumerate(csvfile): with open("{}.txt".format(str(i+1)), "w") as txtfile: txtfile.write(line)
試したこと
import csv
with open('対象データセット.csv') as csvfile:
for i, line in enumerate(csvfile):
with open("{}.txt".format(str(i+1)), "w") as txtfile:
txtfile.write(line)
awk, Python(pandas)などで目的の処理をやろうとしていますが、うまくいっていません。
問題(2*)ファイル名における記号が邪魔になって、処理ができていないため前処理が必要だとは思います。データセット自体が大きいのでawkでの処理を行いたいところです。しかし、pandasでの処理方法などありましたらご教示いただきたいです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー