Converti il dizionario Python in Pandas DataFrame

Asad Riaz 30 gennaio 2023
  1. Metodo per convertire il dizionario in Pandas DataFame
  2. Metodo per convertire le chiavi per essere le columns e i valori per essere la row Valori in Pandas DataFrame
  3. Metodo pandas.DataFrame().from_dict() per convertire dict in DataFrame
Converti il dizionario Python in Pandas DataFrame

Introdurremo il metodo per convertire il Python dizionario in Pandas datafarme, e opzioni come avere keys come columns e values come valori row. Potremmo anche convertire il dizionario annidato in DataFrame.

Introdurremo anche un altro approccio usando pandas.DataFrame.from_dict, e lo concateneremo con qualsiasi metodo rename per impostare sia l’indice che i nomi delle colonne in una volta sola.

Metodo per convertire il dizionario in Pandas DataFame

Il costruttore DataFrame di Pandas pd.DataFrame() converte il dizionario in DataFrame se gli item del dizionario sono dati come argomento del costruttore, ma non il dizionario stesso.

# python 3.x
import pandas as pd

fruit_dict = {3: "apple", 2: "banana", 6: "mango", 4: "apricot", 1: "kiwi", 8: "orange"}

print(pd.DataFrame(list(fruit_dict.items()), columns=["Quantity", "FruitName"]))

Le chiavi e i valori del dizionario vengono convertiti in due colonne del DataFrame con i nomi delle colonne dati nelle opzioni columns.

   Quantity FruitName
0         3     apple
1         2    banana
2         6     mango
3         4   apricot
4         1      kiwi
5         8    orange

Metodo per convertire le chiavi per essere le columns e i valori per essere la row Valori in Pandas DataFrame

Possiamo semplicemente mettere parentesi attorno al dizionario e rimuovere il nome della colonna dal codice sopra in questo modo:

import pandas as pd

fruit_dict = {1: "apple", 2: "banana", 3: "mango", 4: "apricot", 5: "kiwi", 6: "orange"}

print(pd.DataFrame([fruit_dict]))

Produzione:

       1       2      3        4     5       6
0  apple  banana  mango  apricot  kiwi  orange

Useremo i pandas comprensione del dizionario con concat per combinare tutti i dizionari e poi passare l’lista per dare nuovi nomi di colonna.

Considera il codice seguente,

import pandas as pd

data = {"1": {"apple": 11, "banana": 18}, "2": {"apple": 16, "banana": 12}}
df = pd.concat({k: pd.Series(v) for k, v in data.items()}).reset_index()
df.columns = ["dict_index", "name", "quantity"]
print(df)

Produzione:

  dict_index    name  quantity
0          1   apple        11
1          1  banana        18
2          2   apple        16
3          2  banana        12

Metodo pandas.DataFrame().from_dict() per convertire dict in DataFrame

Useremo from_dict per convertire dict in DataFrame, qui impostiamo orient='index' per usare le chiavi del dizionario come righe e applicare il metodo rename() per cambiare il nome della colonna.

Considera il codice seguente,

import pandas as pd

print(
    pd.DataFrame.from_dict(
        {"apple": 3, "banana": 5, "mango": 7, "apricot": 1, "kiwi": 8, "orange": 3},
        orient="index",
    ).rename(columns={0: "Qunatity"})
)

Produzione:

         Quantity
apple           3
banana          5
mango           7
apricot         1
kiwi            8
orange          3

Articolo correlato - Pandas DataFrame