如何將 Python 字典轉換為 Pandas DataFrame

Asad Riaz 2023年1月30日 2020年3月28日
  1. 字典轉換為 Pandas DataFame 的方法
  2. 在 Pandas DataFrame 中將轉換為,將轉換為的方法
  3.  pandas.DataFrame().from_dict() 方法將 dict 轉換為 dataframe
如何將 Python 字典轉換為 Pandas DataFrame

我們將介紹將 Python dictionary 轉換為 Pandas datafarme 的方法,以及將 keys 作為 columnsvalues 作為 row 值並將巢狀的 dictionary 轉換到 DataFrame 的選項。

我們還將使用 pandas.DataFrame.from_dict 引入另一種方法,將其與任何 rename 方法連結起來,並一次性設定索引和列的名稱。

字典轉換為 Pandas DataFame 的方法

Pandas 的 DataFrame 建構函式 pd.DataFrame() 如果將字典的 items 作為建構函式的引數而不是字典本身,則將字典轉換為 dataframe。

# 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']))

字典的將轉換為 DataFrame 的兩列,其列名如選項中所給。

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

在 Pandas DataFrame 中將轉換為,將轉換為的方法

我們可以簡單地將字典放在方括號中,並從上面的程式碼中刪除列名,如下所示:

import pandas as pd

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

print(pd.DataFrame([fruit_dict]))

輸出:

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

我們將使用 pandas 的字典推導concat 來合併所有的字典,然後傳遞列表以使用新的列名

考慮以下程式碼,

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)

輸出:

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

 pandas.DataFrame().from_dict() 方法將 dict 轉換為 dataframe

我們將使用 from_dict 將 dict 轉換為 dataframe,在這裡我們將 orient = index 設定為使用字典鍵作為行並使用 rename() 方法來更改列名。

考慮以下程式碼,

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

輸出:

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

相關文章 - Pandas DataFrame