Exemple de comment transformer une dataframe en dictionnaire avec pandas en python:
Transformer une dataframe en dictionnaire avec to_dict()
Pour transformer une dataframe "df" en dictionnaire avec pandas en python, une solution est d'utiliser pandas.DataFrame.to_dict
df.to_dict()
Un exemple simple ci-dessous
Créer et transformer une dataframe avec pandas
import pandas as pd
import numpy as np
import random
data_dic = {'Name':['Bob','Franck','Emma', 'Lucas'],
'Age':[12,42,27,8]}
df = pd.DataFrame(data_dic)
print(df)
donne
Name Age
0 Bob 12
1 Franck 42
2 Emma 27
3 Lucas 8
Exemple 1: to_dict()
Pour retransformer la dataframe df ci-dessus en dictionnaire on peut par exemple utiliser to_dict() sans arguments:
dict_from_df = df.to_dict()
print(dict_from_df)
ce qui donne
{'Name': {0: 'Bob', 1: 'Franck', 2: 'Emma', 3: 'Lucas'},
'Age': {0: 12, 1: 42, 2: 27, 3: 8}}
Par contre, on peut remarquer que
dic_from_df == data_dic
donne ici
False
Les deux dictionnaires data_dic et dic_from_df ne sont pas identiques.
Exemple 2: to_dict('list')
Pour obtenir le même on peut ici utiliser l'argument 'list' comme ceci
dic_from_df = df.to_dict('list')
dic_from_df
ce qui donne
{'Name': ['Bob', 'Franck', 'Emma', 'Lucas'], 'Age': [12, 42, 27, 8]}
et
dic_from_df == data_dic
donne alors
True
Exemple 3: to_dict('dict')
dic_from_df = df.to_dict('dict')
dic_from_df
donne
{'Name': {0: 'Bob', 1: 'Franck', 2: 'Emma', 3: 'Lucas'},
'Age': {0: 12, 1: 42, 2: 27, 3: 8}}
Exemple 4: to_dict('series')
dic_from_df = df.to_dict('series')
dic_from_df
donne
{'Name': 0 Bob
1 Franck
2 Emma
3 Lucas
Name: Name, dtype: object,
'Age': 0 12
1 42
2 27
3 8
Name: Age, dtype: int64}
Exemple 5: to_dict('split')
dic_from_df = df.to_dict('split')
dic_from_df
donne
{'index': [0, 1, 2, 3],
'columns': ['Name', 'Age'],
'data': [['Bob', 12], ['Franck', 42], ['Emma', 27], ['Lucas', 8]]}
Exemple 6: to_dict('records')
dic_from_df = df.to_dict('records')
dic_from_df
donne
[{'Name': 'Bob', 'Age': 12},
{'Name': 'Franck', 'Age': 42},
{'Name': 'Emma', 'Age': 27},
{'Name': 'Lucas', 'Age': 8}]
Exemple 7 to_dict('index')
dic_from_df = df.to_dict('index')
dic_from_df
donne
{0: {'Name': 'Bob', 'Age': 12},
1: {'Name': 'Franck', 'Age': 42},
2: {'Name': 'Emma', 'Age': 27},
3: {'Name': 'Lucas', 'Age': 8}}