私はこのようにpandasを使用してCSV文字列を生成しています: df.to_csv(sep=',', encoding='utf-8', index=False, header=False)
Csv文字列からキャリッジリターンを取り除く
私はポストグラムにcsvを次のようにロードします。私はcsv_str.replace('\r', '')
を使用して削除し、CSV、キャリッジリターンが存在したときに
COPY table_name FROM STDIN (FORMAT CSV,
DELIMITER ',',
HEADER FALSE,
NULL '',
ENCODING 'utf-8');
時折、これは失敗します。しかし、私は、このアプローチがCSV内のいくつかの既存データを何らかの形で変更するかどうかはわかりません。
キャリッジリターンを削除する信頼性の高い方法はありますか?私はキャリッジリターンに関する情報を失うのは問題ないですが、私はcsvファイルに格納されている他のデータを可能な限り保存したいと思います。
私はすべての3つの方法を試してみた、と 'line_terminator'を使って一つだけが動作しているようですが、残りはすべてヌルにさせます引用符付きで、空の文字列と区別がつかない。しかし、私は可能な場合は、見積り方法を好むでしょう。そのための回避策はありますか? – user113531
NULL表現を別の文字列に変更することができます(例: '\ N'を使って' \ N'を呼び出し、 'COPY'コマンドで' NULL '\ N''を使っていますが、残念なことにpandasは '\ N'を引用し、' COPY'はその値をNULLです。だから私は答えはノーだと思うし、 'line_terminator'を設定する必要があります。 – mhawke