如何将 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