Ho un enorme file HDF5, voglio caricarne una parte in un DataFrame panda per eseguire alcune operazioni, ma sono interessato a filtrare alcune righe.legge il file HDF5 su pda DataFrame con condizioni
posso spiegare meglio con un esempio:
file di HDF5 originale sarebbe simile:
A B C D
1 0 34 11
2 0 32 15
3 1 35 22
4 1 34 15
5 1 31 9
1 0 34 15
2 1 29 11
3 0 34 15
4 1 12 14
5 0 34 15
1 0 32 13
2 1 34 15
etc etc etc etc
Quello che sto cercando di fare è di caricare questo, esattamente come è, ad un panda dataframe ma solo where A==1 or 3 or 4
Fino ad ora posso solo caricare l'intera HDF5 utilizzando:
store = pd.HDFStore('Resutls2015_10_21.h5')
df = pd.DataFrame(store['results_table'])
Non vedo come includere una condizione where
qui.
Grazie unutbu, solo alcuni commenti su questa buona risposta. Capisco che all'inizio della tua risposta scrivi il df in h5 in formato tabella. Tuttavia, l'input per il mio script è un h5 già salvato, come posso sapere se è nel formato corretto o no? – codeKiller
Se il tuo file 'h5' non è nel formato' table', allora usando 'pd.read_hdf' con il parametro' where' genererà 'TypeError: non può passare una specifica where quando legge da un formato Fisso ...'. Se il file 'h5' si trova nel formato' table' di 'A' non è stato specificato come' data_column', allora si otterrebbe 'ValueError: L'espressione dove passato: A in [1,3,4] contiene una variabile non valida di riferimento ... '. – unutbu
Non conosco un modo facile e veloce per convertire un file h5 da 'fixed' a' table' format, o per aggiungere 'data_columns'. Per quanto ne so, dovresti leggere l'intero file 'h5' in un DataFrame (o farlo in blocchi usando il parametro' chunksize') e poi scriverlo o aggiungerlo a un diverso file 'h5' in formato 'table'. – unutbu