LoginSignup
21
19

More than 5 years have passed since last update.

pandas DataFrameをs3から読む・s3に出力するメモ

Last updated at Posted at 2018-08-25

この記事について

AWS EC2上とかで作業する際、s3上においたファイルにアクセスする機会は多いと思います。
そういう際にぜひ利用してください。
(環境やpermission周りの設定にも大いに依存する気がするので、これが最適解だとは思ってないですしそこらへんどういう設定に依存するのかちゃんと整理できてないのであとでちゃんと勉強したい…)

s3からcsvを読み込む

これはread_csvの引数にs3のバケットを指定してあげれば一発。

import pandas as pd

df = pd.read_csv('s3://your-backet/your-file.csv')

s3にcsvを書き出す

こちらは色々なやり方があるようですが、今回はs3fsを使った方法を紹介します。

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')
21
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
19