Comment transformer une dataframe en dictionnaire avec pandas en python ?

Published: 17 novembre 2020

Tags: Python; Pandas; DataFrame;

DMCA.com Protection Status

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}}

Références