geekdoc-python-zh/docs/askpython/convert-lists-to-dataframes.md

6.0 KiB
Raw Permalink Blame History

Python 中如何把列表转换成数据帧?

原文:https://www.askpython.com/python-modules/pandas/convert-lists-to-dataframes

你好极客们!在本教程中,我们将讨论用 Python 从列表创建数据帧的不同方法。

也读: 如何在 Python 中组合 DataFrames


Python 中的列表和数据帧是什么?

在 Python 中,列表是 Python 的标准数据结构之一,被广泛用作其他 Python 对象的数组。数据帧是由以表格形式存储数据的 pandas Python 模块提供的第三方 Python 对象。Pandas 数据框架可以从不同的 Python 对象创建如列表、字典、NumPy 数组等。但是这里我们将只讨论从 Python 列表创建 pandas DataFrame 对象。所以让我们安装pandas Python 模块并开始我们的讨论。

C:\Users\Guest> pip install pandas

在 Python 中,我们有多种方法从列表中创建熊猫数据帧。但这里我们只讨论其中一些常用的。

1.从一维列表创建数据帧

这是创建熊猫数据帧对象 Python 列表的最简单的技术之一。在这个方法中,我们将创建一个包含少量元素的一维列表,并将其传递给DataFrame()函数。这将返回一个 pandas DataFrame 对象,该对象由传递的一维列表的数据元素组成。

让我们编写 Python 代码来从一维列表创建熊猫数据帧。

# Import pandas module
import pandas as pd 

# Create a Python 1-D list
lst = ['Android', 'Bootstrap', 'Csharp', 'Django']

# Create a DataFrame using 1-D list
df = pd.DataFrame(lst)
print(df)

输出:

DataFrame From 1-D List

2.从二维列表创建数据框架(列表列表)

在这个方法中,我们创建一个包含一些元素的 2-D Python 列表,并将其传递给DataFrame()函数。此外,这个DataFrame()函数返回一个 pandas DataFrame 对象,该对象由传递的二维列表的数据元素组成。让我们看看从二维列表创建熊猫数据帧的 Python 代码。

# Import pandas module
import pandas as pd 

# Create a Python 2-D list
lst = [['Anurag', 'Kumar', 25], 
       ['Binod', 'Rathi', 36], 
       ['Ravi', 'Yadav', 27], 
       ['Divya', 'Singh', 28], 
       ['Sanjay', 'Kumar', 21]]

# Create a DataFrame using 2-D list
df = pd.DataFrame(lst, columns = ['first_name', 'last_name', 'age'])
print(df)

输出:

DataFrame From 2-D List

3.从元组列表创建数据帧

我们还可以使用元组的 Python 列表来创建 pandas DataFrame 对象。同样,我们有三种方法从元组列表中创建熊猫数据帧。让我们逐一讨论。

方法 1:将元组列表传递给 DataFrame()函数

在这个方法中,我们简单地创建一个 Python 列表,其中包含 Python 元组形式的数据。然后我们将它传递给DataFrame()函数。然后,DataFrame()函数返回一个由元组列表的数据元素组成的 Pandas DataFrame 对象。

让我们通过 Python 代码来实现这一点。

# Import pandas module
import pandas as pd 

# Create a Python list of tuples
list_tp = [('A1', 'A2', 'A3', 'A4', 'A5'),
          ('B1', 'B2', 'B3', 'B4', 'B5'),
          ('C1', 'C2', 'C3', 'C4', 'C5'),
          ('D1', 'D2', 'D3', 'D4', 'D5')]

# Create a DataFrame using list of tuples
df = pd.DataFrame(list_tp)
print(df)

输出:

DataFrame From List Of Tuples

方法 2:使用 from_records()函数

在这个方法中,我们创建一个包含 Python 元组形式的数据的列表,就像我们在上面的 Python 代码中创建的一样。并将其传递给from_records()函数,然后该函数返回一个由元组列表的数据元素组成的 Pandas DataFrame 对象。让我们编写 Python 代码来实现这一点。

# Import pandas module
import pandas as pd 

# Create a Python list of tuples
list_tp = [('Sanjay Kumar', 'ECE', 8.15),
           ('Uttam Kumar', 'IPE', 7.83),
           ('Ravi Kumar', 'CSE', 9.12),
           ('Anurag Singh', 'ICE', 8.88)]

# Create a DataFrame using list of tuples
# and from_records() function
df = pd.DataFrame.from_records(list_tp, columns = ['Roll', 'Program', 'CGPA'])
print(df)

输出:

DataFrame From List Of Tuples Using From Records

方法 3:使用 list()和 zip()函数

在这个方法中,我们使用list()zip()函数创建一个 Python 元组列表,其中包含 Python 元组形式的数据。

zip()函数压缩传递给它的两个列表中的数据元素,并创建一个 Python tuple 对象。

list()函数从 Python zip()函数返回的迭代器对象中创建一个 Python 元组列表。

然后我们简单地将这个元组列表传递给DataFrame()函数,然后该函数返回一个由元组列表的数据元素组成的 Pandas DataFrame 对象。让我们看看实现这一点的 Python 代码。

# Import pandas module
import pandas as pd 

# Create two Python lists
prog_lang = ['C++', 'Python', 'Matlab', 'Csharp']
file_extn = ['.cpp', '.py', '.mat', '.cs']

# Create a Python list of tuples
# using above lists and zip() function
list_tp = list(zip(prog_lang, file_extn))

# Create a DataFrame from lists using dictionary
df = pd.DataFrame(list_tp, columns = ['Language', 'Extension'])
print(df)

输出:

DataFrame From List Of Tuples Using Zip

结论

在本教程中,我们学习了以下内容:

  • Python 中的数据框架对象和列表是什么
  • 如何从一维创建数据框架
  • 如何从列表列表或二维列表创建数据框架
  • 从元组列表创建数据帧的不同方法