pandas 1.0.0 wurde veröffentlicht.
https://pandas.pydata.org/pandas-docs/stable/whatsnew/v1.0.0.html
Als neues Feature
--Pandas.NA, das verschiedene Arten fehlender Werte einheitlich behandelt, wurde probeweise eingeführt.
Persönlich jedoch der obige Versionshinweis 'Andere Verbesserungen' -Erweiterungen) Ich bemerkte die beiläufig geschriebene Beschreibung ganz am Ende:
DataFrame.to_pickle() and read_pickle() now accept URL (GH30163)
Dies bedeutet, dass Sie die Daten, die durch Pickle im Cloud-Speicher verfestigt wurden, direkt speichern und lesen können! ??
Ich habe es aus einem Grund versucht:
Erstellen Sie einen geeigneten DataFrame wie den folgenden.
df = pd.DataFrame({'hoge': [1, 2, 3], 'fuga': [4, 5, 6], 'piyo': [7, 8, 9]})
Auf diese Weise
hoge | fuga | piyo | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
Das konnte ich ausdrücken. [^ 1]
[^ 1]: Diese Tabelle wurde übrigens mit df.to_markdown ()
ausgegeben, das auch aus pandas 1.0.0 hinzugefügt wurde. Praktisch.
Speichern Sie dies in dem zuvor erstellten AWS S3-Bucket "s3: // tatamiya-test /" und lesen Sie es. [^ 2] [^ 3]
[^ 2]: Ich werde die Einstellungsmethode von IAM und kritischem Schlüssel weglassen. [^ 3]: Ich habe es nicht bestätigt, aber Sie sollten GCS verwenden können.
Solange es im CSV-Format gespeichert / gelesen wird, war dies mit der herkömmlichen Version möglich.
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
Im Fall von Gurke wurde der PFAD jedoch nicht durch denselben Vorgang erkannt.
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'
Versuchen wir es jetzt mit der neuesten 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
Ich konnte bestätigen, dass es gespeichert und richtig gelesen werden kann!
Bei der Verarbeitung von Daten mit Pandas in der Cloud konnte die URL direkt mit to_csv () angegeben und gelesen werden, auch wenn sich die Datenquelle in S3 oder GCS befindet. Es handelt sich um eine Datei im CSV-Format.
Wenn Sie die Zwischendaten nach dem Formen und Verarbeiten speichern, ist es jedoch besser, den DataFrame oder die Serie als Python-Objekt in eine Byte-Zeichenfolge zu konvertieren und zu speichern.
To_pickle () und read_pickle () waren nützlich, weil sie solche Vorzüge hatten.
Wie oben erwähnt, konnte die S3 / GCS-URL in der Vergangenheit jedoch zu diesem Zeitpunkt nicht als Speicherziel angegeben werden.
Ich musste mir etwas Zeit und Mühe nehmen.
Deshalb war dieses Update nüchtern, aber persönlich sehr dankbar!
(Da die Abwärtskompatibilität jedoch nicht garantiert ist, ist es bisher nicht möglich, 1.0.0 wie im Code einzuführen ...)
Recommended Posts