Python-将嵌套字典列表转换为Pandas Dataframe

python很多时候会从各种来源接收数据,这些数据可以采用不同的格式,例如csv,JSON等,可以转换为python列表或字典等。但是要使用诸如pandas之类的包应用计算或分析,我们需要将此数据转换为一个数据框。在本文中,我们将看到如何将给定的python列表(其元素为嵌套字典)转换为pandas Datframe。

我们首先获取嵌套字典的列表,然后从中提取数据行。然后,我们创建另一个for循环,以将行附加到最初创建为空的新列表中。最后,我们在pandas库中应用DataFrames函数来创建数据框。

示例

import pandas as pd

# 给定嵌套字典

list = [

   {

      "Fruit": [{"Price": 15.2, "Quality": "A"},

         {"Price": 19, "Quality": "B"},

         {"Price": 17.8, "Quality": "C"},

      ],

      "Name": "Orange"

   },

   {

      "Fruit": [{"Price": 23.2, "Quality": "A"},

         {"Price": 28, "Quality": "B"}

      ],

      "Name": "Grapes"

   }

]

rows = []

# 获取行

for data in list:

   data_row = data['Fruit']

   n = data['Name']

   for row in data_row:

      row['Name'] = n

      rows.append(row)

# 转换为数据框

df = pd.DataFrame(rows)

print(df)

运行上面的代码给我们以下结果-

输出结果

Price Quality   Name

0 15.2    A Orange

1 19.0    B Orange

2 17.8    C Orange

3 23.2    A Grapes

4 28.0    B Grapes

应用枢轴

我们还可以应用pivot_table函数以所需的方式重新组织数据。

示例

import pandas as pd

# 嵌套字典初始化列表

list = [

   {

      "Fruit": [{"Price": 15.2, "Quality": "A"},

         {"Price": 19, "Quality": "B"},

         {"Price": 17.8, "Quality": "C"},

      ],

      "Name": "Orange"

   },

   {

      "Fruit": [{"Price": 23.2, "Quality": "A"},

         {"Price": 28, "Quality": "B"}

      ],

      "Name": "Grapes"

   }

]

#print(list)

rows = []

# 追加行

for data in list:

   data_row = data['Fruit']

   n = data['Name']

   for row in data_row:

      row['Name'] = n

      rows.append(row)

   # 使用数据框

df = pd.DataFrame(rows)

df = df.pivot_table(index='Name', columns=['Quality'],

               values=['Price']).reset_index()

print(df)

运行上面的代码给我们以下结果-

输出结果

       Name Price         

Quality          A    B    C

0      Grapes 23.2 28.0 NaN

1      Orange 15.2 19.0 17.8

以上是 Python-将嵌套字典列表转换为Pandas Dataframe 的全部内容, 来源链接: utcz.com/z/361599.html

回到顶部