この記事について
AWS EC2上とかで作業する際、s3上においたファイルにアクセスする機会は多いと思います。
そういう際にぜひ利用してください。
(環境やpermission周りの設定にも大いに依存する気がするので、これが最適解だとは思ってないですしそこらへんどういう設定に依存するのかちゃんと整理できてないのであとでちゃんと勉強したい…)
s3からcsvを読み込む
これはread_csvの引数にs3のバケットを指定してあげれば一発。
.py
import pandas as pd
df = pd.read_csv('s3://your-backet/your-file.csv')
s3にcsvを書き出す
こちらは色々なやり方があるようですが、今回はs3fs
を使った方法を紹介します。
.py
def write_df_to_s3(df, outpath):
"""
s3にファイルを書き出す処理
"""
import s3fs
key = "your-aws-access-key"
secret = "your-aws-secret-access-key"
bytes_to_write = df.to_csv(None, index=False).encode()
fs = s3fs.S3FileSystem(key=key, secret=secret)
with fs.open(outpath, 'wb') as f:
f.write(bytes_to_write)
# dfという名前のDataFrameを's3://your-backet/your-file.csv'に書き出す
write_df_to_s3(df,'s3://your-backet/your-file.csv')