[PYTHON] Enregistrer Pandas DataFrame en tant que .csv.gz dans Amazon S3

Notez que j'étais un peu accro en essayant de gzip le Pandas DataFrame et de l'enregistrer en tant que fichier CSV dans un compartiment Amazon S3.

import gzip
from io import BytesIO
import pandas as pd
import boto3

def save_to_s3(df: pd.DataFrame, bucket: str, key: str):
    """Pandas DataFrame.csv.Enregistrer sur Amazon S3 en tant que gz"""
    buf = BytesIO()
    with gzip.open(buf, mode="wt") as f:
        df.to_csv(f)
    s3 = boto3.client("s3")
    s3.put_object(Bucket=bucket, Key=key, Body=buf.getvalue())

Les points sont les suivants.

--Entrez BytesIO () car le premier argument de gzip.open est un objet de type fichier qui représente le format gzip.

Au début, je pensais que si je spécifiais compression =" gzip " dans pandas.DataFrame.to_csv, je n'aurais pas à le compresser explicitement, mais si je saisissais un objet semblable à un fichier dans to_csv, L'option compression semble être ignorée et ne peut pas être utilisée.

Recommended Posts

Enregistrer Pandas DataFrame en tant que .csv.gz dans Amazon S3
Enregistrer Pandas DataFrame en tant que .csv.gz dans Amazon S3
Comment réattribuer un index dans pandas dataframe
Téléchargez Pandas DataFrame sous forme de fichier CSV
Y a-t-il NaN dans le DataFrame pandas?
Supprimer les lignes avec des valeurs arbitraires dans pandas DataFrame
Supprimer les lignes avec des index en double dans pandas DataFrame
Vérifiez si la colonne attendue existe dans Pandas DataFrame
Convertir des chaînes numériques séparées par des virgules en nombres dans Pandas DataFrame
Comment afficher DataFrame sous forme de tableau dans Markdown
Enregistrer Pandas DataFrame en tant que .csv.gz dans Amazon S3
Charger json imbriqué avec des pandas
Téléchargez Pandas DataFrame sous forme de fichier CSV
Application Python: Pandas # 3: Dataframe
Exporter la trame de données pandas vers Excel
[Python3] Enregistrez la matrice de moyenne et de covariance dans json avec les pandas
[python] Utilisez DataFrame pour étiqueter ensemble des variables et des tableaux arbitraires et les enregistrer dans csv [pandas]