Exemples de comment créer une dataframe pandas à partir d'un dictionnaire python:
Créer une dataframe à partir d'un dictionnaire python (méthode 1)
Pour créer une dataframe à partir d'un dictionnaire python :
d = {'Name': ['Ben', 'John', 'Emma', 'Zoe'],'Age': [40, 56, 34, 12]}
une solution est de faire
import pandas as pddf = pd.DataFrame(d)
donne
Name Age0 Ben 401 John 562 Emma 343 Zoe 12
Créer une dataframe à partir d'un dictionnaire python (méthode 2)
Une autre solution consiste à utiliser pandas.DataFrame.from_dict
df = pd.DataFrame.from_dict(d)print(df)
donne
Name Age0 Ben 401 John 562 Emma 343 Zoe 12
L'avantage est d'utiliser des paramètres tels que "orient":
df = pd.DataFrame.from_dict(d, orient='index')
donne alors
0 1 2 3Name Ben John Emma ZoeAge 40 56 34 12
Ajoutez des noms de colonne :
df = pd.DataFrame.from_dict(d, orient='index', columns=['User 1', 'User 2', 'User 3', 'User 4'])
donne
User 1 User 2 User 3 User 4Name Ben John Emma ZoeAge 40 56 34 12
Ajouter une nouvelle ligne dans un dataframe
Autre exemple, ajoutez une nouvelle ligne dans un dataframe existant :
import pandas as pdd = {'Name': ['Ben', 'John', 'Emma', 'Zoe'],'Age': [40, 56, 34, 12]}df = pd.DataFrame.from_dict(d)Name Age0 Ben 401 John 562 Emma 343 Zoe 12
Créer une nouvelle dataframe à partir d'un dictionnaire python
new_d = {'Name': ['Paula'],'Age': [67]}df_new_row = pd.DataFrame.from_dict(new_d)
Pour ajouter une nouvelle ligne, une solution consiste à utiliser concat() (voir Comment fusionner / concatener deux dataframes avec pandas en python ? et Comment créer une DataFrame vide avec pandas et la remplir ligne par ligne en python ?)
df = pd.concat([df,df_new_row], ignore_index=True)
donne
Name Age0 Ben 401 John 562 Emma 343 Zoe 124 Paula 67
Corriger l'erreur "If using all scalar values, you must pass an index"
new_d = {'Name': 'Paula','Age': 67}df_new_row = pd.DataFrame.from_dict(new_d)
donne
ValueError: If using all scalar values, you must pass an index
C'est parce que les valeurs du dictionnaire new_d ne sont pas une liste.
Pour résoudre ce problème, ajoutez simplement [] :
new_d = {'Name': ['Paula'],'Age': [67]}df_new_row = pd.DataFrame.from_dict(new_d)
