こんにちは:Pandas
DataFrame.to_csv
メソッドを使用してdataframe
をcsv
ファイルに保存しようとしています。
filename = './dir/name.csv'
df.to_csv(filename)
しかし、私はエラーが発生しています:
IOError: [Errno 2] No such file or directory: './dir/name.csv'
to_csv
メソッドは、ファイルが存在しない場合にファイルを作成できませんか?これが私がやろうとしていることです。
to_csv
は、あなたが言ったようにファイルが存在しない場合は作成しますが、存在しないディレクトリは作成しません。ファイルを保存しようとしているサブディレクトリが最初に作成されていることを確認してください。
私はよく仕事で次のようなことをします。
import os
outname = 'name.csv'
outdir = './dir'
if not os.path.exists(outdir):
os.mkdir(outdir)
fullname = os.path.join(outdir, outname)
df.to_csv(fullname)
これを頻繁に行う必要がある場合、これは簡単に関数にまとめることができます。
優れた標準ライブラリpathlib
モジュールを使用してこれを行う別の方法を次に示します。これにより、一般的に見やすくなります。
他で説明したように、to_csv
はfileを作成しますが、存在しない場合はwont createファイルへのパスに存在しないディレクトリがあるため、まずこれらが存在することを確認する必要があります。
from pathlib import Path
output_file = 'my_file.csv'
output_dir = Path('long_path/to/my_dir')
output_dir.mkdir(parents=True, exist_ok=True)
df.to_csv(output_dir / output_file) # can join path elements with / operator
設定parents=True
は、必要な親ディレクトリも作成し、exist_ok=True
は、ディレクトリが既に存在する場合、エラーを発生させないことを意味します。したがって、個別に明示的に確認する必要はありません。