如何将 Python 字典转换为 Pandas DataFrame

Asad Riaz 2023年1月30日
  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