在python中把字典列表转换为数据框架的方法

201 阅读3分钟

数据框架在python中主要用于分析表格数据。在这篇文章中,我们将讨论如何在python中把字典列表转换为数据框架。

使用pandas将字典列表转换成数据框架:DataFrame()

数据框架对象是在pandas模块中定义的。为了从一个给定的字典列表中创建一个数据框架,我们可以使用 DataFrame() 方法。DataFrame() 方法对象接受一个字典列表作为输入参数,并返回一个由字典创建的数据框架。这里,数据框架的列名由python 字典中的键组成。每个字典的值被转换为数据框架的行。你可以使用 pandas.DataFrame() 方法从一个字典的列表中创建一个数据框架,如下所示。

import pandas as pd

listOfDict = [{'Name': 'Aditya', 'Roll': 1, 'Language': 'Python'}, {'Name': 'Sam', 'Roll': 2, 'Language': 'Java'},              {'Name': 'Chris', 'Roll': 3, 'Language': 'C++'}, {'Name': 'Joel', 'Roll': 4, 'Language': 'TypeScript'}]
print("THe list of dictionaries is:")
print(listOfDict)
df = pd.DataFrame(listOfDict)
print("The dataframe is:")
print(df)

输出。

THe list of dictionaries is:
[{'Name': 'Aditya', 'Roll': 1, 'Language': 'Python'}, {'Name': 'Sam', 'Roll': 2, 'Language': 'Java'}, {'Name': 'Chris', 'Roll': 3, 'Language': 'C++'}, {'Name': 'Joel', 'Roll': 4, 'Language': 'TypeScript'}]
The dataframe is:
     Name  Roll    Language
0  Aditya     1      Python
1     Sam     2        Java
2   Chris     3         C++
3    Joel     4  TypeScript

在数据框架中,为字典列表中的每个键创建一个列。如果一个字典没有任何特定的键,那么在代表该字典的行中,与特定键相对应的列的值是NaN

在Python中使用pandas.dataframe.from_dict()方法将字典列表转换成数据框架

我们可以不使用DataFrame() 方法,而是使用from_dict() 方法在 Python 中将字典列表转换为数据框架。from_dict() 方法接收一个字典列表作为其输入参数,并返回一个数据框架。同样,数据框架的列名由字典中的键组成。每个字典的值被转换为数据框架的行。你可以使用from_dict() 方法从一个字典的列表中创建一个数据框架,如下所示。

import pandas as pd

listOfDict = [{'Name': 'Aditya', 'Roll': 1, 'Language': 'Python'}, {'Name': 'Sam', 'Roll': 2, 'Language': 'Java'},              {'Name': 'Chris', 'Roll': 3, 'Language': 'C++'}, {'Name': 'Joel', 'Roll': 4, 'Language': 'TypeScript'}]
print("THe list of dictionaries is:")
print(listOfDict)
df = pd.DataFrame.from_dict(listOfDict)
print("The dataframe is:")
print(df)

输出。

THe list of dictionaries is:
[{'Name': 'Aditya', 'Roll': 1, 'Language': 'Python'}, {'Name': 'Sam', 'Roll': 2, 'Language': 'Java'}, {'Name': 'Chris', 'Roll': 3, 'Language': 'C++'}, {'Name': 'Joel', 'Roll': 4, 'Language': 'TypeScript'}]
The dataframe is:
     Name  Roll    Language
0  Aditya     1      Python
1     Sam     2        Java
2   Chris     3         C++
3    Joel     4  TypeScript

你可以观察到由from_dict()方法生成的数据框架与由DataFrame()方法生成的数据框架类似。

使用pandas.dataframe.from_records(Data)将字典列表转换成数据框架

要从Python中的字典列表中创建一个数据框架,我们也可以使用from_records() 方法。from_records() 方法将一个字典列表作为其输入参数,并返回一个数据框架。同样,数据框架的列名由字典中的键组成。每个字典的值被转换为数据框架的行。你可以使用from_records() 方法从一个字典的列表中创建一个数据框架,如下所示。

import pandas as pd

listOfDict = [{'Name': 'Aditya', 'Roll': 1, 'Language': 'Python'}, {'Name': 'Sam', 'Roll': 2, 'Language': 'Java'},              {'Name': 'Chris', 'Roll': 3, 'Language': 'C++'}, {'Name': 'Joel', 'Roll': 4, 'Language': 'TypeScript'}]
print("THe list of dictionaries is:")
print(listOfDict)
df = pd.DataFrame.from_records(listOfDict)
print("The dataframe is:")
print(df)

输出。

THe list of dictionaries is:
[{'Name': 'Aditya', 'Roll': 1, 'Language': 'Python'}, {'Name': 'Sam', 'Roll': 2, 'Language': 'Java'}, {'Name': 'Chris', 'Roll': 3, 'Language': 'C++'}, {'Name': 'Joel', 'Roll': 4, 'Language': 'TypeScript'}]
The dataframe is:
     Name  Roll    Language
0  Aditya     1      Python
1     Sam     2        Java
2   Chris     3         C++
3    Joel     4  TypeScript

结论

在这篇文章中,我们讨论了三种在 python 中将字典列表转换为数据框架的方法。这三种方法在语义上是相似的,产生的结果也是一样的。