Ich habe folgende Pandas Datenrahmen:Wie speichert man einen Pandas DataFrame als HDFS PyTables-Tabelle (oder CArray, EArray, etc.)?
import pandas as pd
df = pd.read_csv(filename.csv)
Jetzt kann ich HDFStore
verwenden, um das df
Objekt zu schreiben in einer Datei (wie das Hinzufügen von Schlüssel-Wert-Paaren zu einem Python-Wörterbuch):
store = HDFStore('store.h5')
store['df'] = df
http://pandas.pydata.org/pandas-docs/stable/io.html Wenn ich mir den Inhalt anschaue, ist dieses Objekt ein frame
.
store
Ausgänge
<class 'pandas.io.pytables.HDFStore'>
File path: store.h5
/df frame (shape->[552,23252])
Um jedoch Indizierung zu verwenden, sollte man diesen Speicher als table
Objekt.
Mein Ansatz war HDFStore.put()
heißt
HDFStore.put(key="store.h", value=df, format=Table)
jedoch zu versuchen, dies nicht gelingt mit dem Fehler:
TypeError: put() missing 1 required positional argument: 'self'
Wie kann man Pandas Dataframes als PyTables Tabellen speichern?
Danke. Wie würden Sie dies als CArray oder EArray speichern? – JianguoHisiang
@ JianguoHisiang, ich habe keine Erfahrung mit CArray/Earray, also kann ich Ihre Frage im Kommentar nicht beantworten. Aber was ist falsch mit HDFStore? Hat meine Antwort geholfen? – MaxU
Es ist richtig, ja. Ich bin mir jedoch nicht sicher, wie dieses 'frame_table'-Objekt abgefragt wird (es ist kein' table '-Objekt). Normalerweise würden Sie versuchen, etwas wie 'Ergebnis = [Zeile für Zeile in der Tabelle.Where ('Spalte1> 100 & Spalte1 <200')]' Wenn 'Spalte1 'indiziert ist. – JianguoHisiang