Comment ajouter des metadata à une data frame avec pandas sous python ?

Active 22 octobre 2019    /    Viewed 1125    /    Comments 0    /    Edit


Exemple de comment ajouter des metadata à une data frame avec pandas sous python:

Créer une data frame avec pandas

Exemple de comment créer une simple data frame avec pandas

import pandas as pd
import numpy as np

data = np.arange(1,13)
data = data.reshape(3,4)

columns = ['Home','Car','Sport','Food']
index = ['Alice','Bob','Emma']

df = pd.DataFrame(data=data,index=index,columns=columns)

Ajouter des metadata

On peut alors ajouter des metadata à la data frame comme ceci:

df.scale = 0.1
df.offset = 15

print(df.scale)
print(df.offset)

donne

0.1
15

Sauvegarder dans un fichier hdf5

Pour sauvegarder une data frame et des metadata on peut utiliser un fichier hdf5 avec HDFStore
(voir Save additional attributes in Pandas Dataframe)

store = pd.HDFStore('data.hdf5')

store.put('dataset_01', df)

metadata = {'scale':0.1,'offset':15}

store.get_storer('dataset_01').attrs.metadata = metadata

store.close()

Lire un fichier hdf5 avec pandas

Exemple de comment ensuite lire le fichier

import pandas as pd

with pd.HDFStore('data.hdf5') as store:
    data = store['dataset_01']
    metadata = store.get_storer('dataset_01').attrs.metadata

print(data)

print(metadata)

donne

       Home  Car  Sport  Food
Alice     1    2      3     4
Bob       5    6      7     8
Emma      9   10     11    12
{'scale': 0.1, 'offset': 15}

Références

Liens Site
How to add meta_data to Pandas dataframe? stackoverflow
Adding meta-information/metadata to pandas DataFrame stackoverflow
Using HDFStore riptutorial
Save additional attributes in Pandas Dataframe stackoverflow
pandas.read_hdf pandas.pydata.org
How to: Get the DataFrame metadata kite.com


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!