pandas 1.0.0 a été publié.
https://pandas.pydata.org/pandas-docs/stable/whatsnew/v1.0.0.html
En tant que nouvelle fonctionnalité
--Pandas.NA, qui gère différents types de valeurs manquantes de manière unifiée, a été introduit à titre d'essai.
Cependant, personnellement, la note de publication ci-dessus 'Autres améliorations' -enhancements) J'ai remarqué la description écrite à la toute fin:
DataFrame.to_pickle() and read_pickle() now accept URL (GH30163)
Cela signifie que vous pouvez directement enregistrer et lire les données qui ont été solidifiées par pickle sur le stockage en nuage! ??
Je l'ai essayé pour une raison:
Créez un DataFrame approprié comme celui ci-dessous.
df = pd.DataFrame({'hoge': [1, 2, 3], 'fuga': [4, 5, 6], 'piyo': [7, 8, 9]})
En faisant cela,
hoge | fuga | piyo | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
J'ai pu exprimer cela. [^ 1]
[^ 1]: Au fait, cette table a été sortie en utilisant df.to_markdown ()
qui a également été ajoutée à partir de pandas 1.0.0. Pratique.
Enregistrez-le dans le compartiment AWS S3 `` s3: // tatamiya-test / `créé à l'avance et lisez-le. [^ 2] [^ 3]
[^ 2]: j'omettrai la méthode de paramétrage d'IAM et de clé critique. [^ 3]: Je ne l'ai pas confirmé, mais vous devriez pouvoir utiliser GCS.
Tant qu'il est sauvegardé / lu au format .csv, c'était possible avec la version conventionnelle.
pd.__version__
# >> '0.25.3'
df.to_csv('s3://tatamiya-test/test.csv', index=None)
pd.read_csv('s3://tatamiya-test/test.csv')
# >> hoge fuga piyo
# >> 0 1 4 7
# >> 1 2 5 8
# >> 2 3 6 9
Cependant, dans le cas du pickle, le PATH n'a pas été reconnu par la même opération.
pd.__version__
# >> '0.25.3'
df.to_pickle('s3://tatamiya-test/test.pkl')
# >> FileNotFoundError: [Errno 2] No such file or directory: 's3://tatamiya-test/test.pkl'
pd.read_pickle('s3://tatamiya-test/test.pkl')
# >> FileNotFoundError: [Errno 2] No such file or directory: 's3://tatamiya-test/test.pkl'
Maintenant, essayons avec la dernière version 1.0.0.
pd.__version__
# >> '1.0.0'
df.to_pickle('s3://tatamiya-test/test.pkl')
pd.read_pickle('s3://tatamiya-test/test.pkl')
# >> hoge fuga piyo
# >> 0 1 4 7
# >> 1 2 5 8
# >> 2 3 6 9
J'ai pu confirmer qu'il peut être sauvegardé et lu correctement!
Lors du traitement de données à l'aide de pandas sur le cloud, même si la source de données est sur S3 ou GCS, s'il s'agit d'un fichier au format csv, il était possible de spécifier directement l'URL avec to_csv () et de la lire.
Cependant, lors de l'enregistrement des données intermédiaires après la mise en forme et le traitement, il est préférable de convertir le DataFrame ou la série en tant qu'objet Python en une chaîne d'octets et de l'enregistrer.
--Petite capacité --Rechargement rapide
To_pickle () et read_pickle () étaient utiles car ils avaient de tels avantages.
Cependant, comme mentionné ci-dessus, dans le passé, l'URL S3 / GCS ne pouvait pas être spécifiée comme destination de sauvegarde pour le moment.
--Utiliser la bibliothèque cliente --Enregistrer localement, puis sauter avec l'outil de ligne de commande
J'ai dû prendre du temps et des efforts.
C'est pourquoi cette mise à jour était sobre mais personnellement très reconnaissante!
(Cependant, comme la compatibilité descendante n'est pas garantie, il n'est pas possible d'introduire la 1.0.0 telle qu'elle est dans le code jusqu'à présent ...)
Recommended Posts