J'ai de grands pandas DataFrames avec des données financières. Je n'ai aucun problème à ajouter et à concaténer des colonnes et des DataFrames supplémentaires à mon fichier .h5.Ajouter des données au fichier HDF5 avec Pandas, Python
Les données financières sont mises à jour chaque minute, j'ai besoin d'ajouter une ligne de données à toutes mes tables existantes à l'intérieur de mon fichier .h5 chaque minute.
Voici ce que j'ai essayé jusqu'à présent, mais peu importe ce que je fais, il écrase le fichier .h5 et ne pas simplement ajouter des données.
HDFStore façon:
#we open the hdf5 file
save_hdf = HDFStore('test.h5')
ohlcv_candle.to_hdf('test.h5')
#we give the dataframe a key value
#format=table so we can append data
save_hdf.put('name_of_frame',ohlcv_candle, format='table', data_columns=True)
#we print our dataframe by calling the hdf file with the key
#just doing this as a test
print(save_hdf['name_of_frame'])
L'autre façon que je l'ai essayé, to_hdf:
#format=t so we can append data , mode=r+ to specify the file exists and
#we want to append to it
tohlcv_candle.to_hdf('test.h5',key='this_is_a_key', mode='r+', format='t')
#again just printing to check if it worked
print(pd.read_hdf('test.h5', key='this_is_a_key'))
Voici ce que l'un des DataFrames ressemble après avoir été read_hdf:
time open high low close volume PP
0 1505305260 3137.89 3147.15 3121.17 3146.94 6.205397 3138.420000
1 1505305320 3146.86 3159.99 3130.00 3159.88 8.935962 3149.956667
2 1505305380 3159.96 3160.00 3159.37 3159.66 4.524017 3159.676667
3 1505305440 3159.66 3175.51 3151.08 3175.51 8.717610 3167.366667
4 1505305500 3175.25 3175.53 3170.44 3175.53 3.187453 3173.833333
La prochaine fois que j'obtiens des données (toutes les minutes), je voudrais qu'une ligne soit ajoutée à l'index 5 de toutes mes colonnes ... et ensuite 6 et 7 ..et ainsi de suite, sans avoir à lire et à manipuler le fichier entier dans la mémoire que cela serait vaincre le point de faire cela. S'il existe une meilleure façon de résoudre ce problème, n'hésitez pas à le recommander.
P.S. désolé pour le formatage de cette table ici
C'est, je vous remercie beaucoup pour le rapide répondre ! – Karl
@Karl, heureux je pourrais aider :) – MaxU
pourriez-vous ajouter une explication pourquoi 'append' fonctionne et' put' ne fonctionne pas? – Mayou36