如何將 Python 字典轉換為 Pandas DataFrame
Asad Riaz
2023年1月30日
Pandas
Pandas DataFrame
-
將
字典轉換為 PandasDataFame的方法 -
在 Pandas DataFrame 中將
鍵轉換為列,將值轉換為行的方法 -
pandas.DataFrame().from_dict()方法將 dict 轉換為 dataframe
我們將介紹將 Python dictionary 轉換為 Pandas datafarme 的方法,以及將 keys 作為 columns 和 values 作為 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
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe