CSVからデータを抽出

CSVからデータを抽出

友達!私は巨大なcsvファイルを持っており、「data.status」という列が「Full」のようなヘッダーを持つ行を抽出し、空の列を削除して別のcsvファイルに書き込む必要があります。 grep |を使ってこれを達成できますか? sed |え?答えてくれてありがとう!

編集1.約60,000個のjsonファイルを平面化し、そのファイルのデータをcsvに作成してこのcsvを作成しました。ヘッダーの実際の数がわからず、開くこともできません。 (csvファイルサイズは約1.5GBです。)しかし、空のフィールドがたくさんあるので、それを削除して読みやすくしたいと思います。たとえば、csvがあります。

日付、ステータス、日付、開始、日付、終了、日付、プロジェクト

失敗、21-03-15、25-03-15、some_item

完了,,,,項目2

出力は次のようになります。

日付、ステータス、日付、プロジェクト

完了、プロジェクト2

ベストアンサー1

ハッキングにはgrep / sed / awkを使用できますが、CSVパーサーを実装するのは簡単ではないため、高速ハッキングにのみ使用することをお勧めします(たとえば、さまざまな特殊エスケープ/引用シナリオを考慮する必要があります)。

これを行うには、Python stdlibで提供されているような実際の完全なCSVパーサーを使用することをお勧めします。

import csv

with open('your.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    kept_rows = (row for row in reader if row['data.status'] == 'complete')

その後、次を使用して新しい行を作成できます。DictWriter

おすすめ記事