您的位置:

将数据帧转换为列表

在本教程中,我们将学习如何将数据帧转换为简单的 Python 列表。我们将学习将数据帧转换成列表的所有方法。在继续使用这些方法之前,让我们先来看看什么是数据帧,以及如何使用 Pandas 在 Python 中创建数据帧。

Pandas 数据帧

panda 模块中的数据帧是一个二维(二维)大小的模块,可能在异构表格数据结构中,其轴(行和列)标有变量。简而言之,数据帧是一种二维数据结构,其中数据以表格形式排列。

在 Pandas 中创建数据帧

我们可以使用 Python 中的 Pandas 模块,通过以下程序创建一个基本的数据帧:

示例-


# Importing Panda module as jtp
import pandas as jtp
GivenData = {'Famous Name':['Stark Iron', 'Captain Rogers', 'Hulk banner', 'Spidy Parker' ],
             'Age': [42, 95, 38, 18] }  
# Creating DataFrame with DataFrame() function 
dataFrame = jtp.DataFrame(GivenData)  
# Print the dataframe as result 
print(dataFrame)

输出:

      Famous Name     Age
0      Stark Iron             42
1   Captain Rogers       95
2     Hulk banner       38
3    Spidy Parker       18

因此,这就是我们如何使用 Pandas 模块创建数据帧,在查看输出后,我们还可以了解数据帧的外观。

将数据帧转换为列表

在将给定的数据帧转换为列表时,我们将以下列方式使用程序中 Pandas 模块的 tolist() 函数:


dataframe.tolist()

让我们在一个例子中使用这个函数来理解 tolist()函数的工作原理。

示例:


# Importing Panda module as jtp
import pandas as jtp
GivenData = {'Famous Name':['Stark Iron', 'Captain Rogers', 'Hulk banner', 'Spidy Parker' ],
             'Age': [42, 95, 38, 18] }  
# Creating DataFrame with DataFrame() function 
dataFrame = jtp.DataFrame(GivenData)  
# Converting dataframe into a list
List = dataFrame.values.tolist()
# Print converted list data as result
print(List)

输出:

[['Stark Iron', 42], ['Captain Rogers', 95], ['Hulk banner', 38], ['Spidy Parker', 18]]

将数据帧转换为列表的方法:

数据帧可以通过多种方式转换成 Python 列表。在本节中,我们将讨论将给定数据帧转换为列表的所有方法。在这里,我们将借助 tolist()函数使用以下四种方法:

  1. 包含所有行时转换数据帧
  2. 将数据帧转换为嵌套列表
  3. 将数据帧转换为嵌套的列列表
  4. 将数据帧转换为包含列名的列表

现在,让我们通过一个例子来了解每种方法,以便更好地理解它们。

方法 1:转换包含所有行的数据帧

在这种方法中,我们将给定的数据帧转换为一个列表,该列表将包含数据帧中特定列的所有行。

看下面的程序来理解这个方法的实现:

示例-


# Importing Panda module as jtp
import pandas as jtp
GivenData = {'Famous Name':['Stark Iron', 'Captain Rogers', 'Hulk banner', 'Spidy Parker' ],
             'Age': [42, 95, 38, 18] }  
# Creating DataFrame with DataFrame() function 
dataFrame = jtp.DataFrame(GivenData)  
# Converting dataframe Famous Names column into a single list
FamousNames = dataFrame['Famous Name'].tolist()
# Printing the converted list data
print(FamousNames)

输出:

['Stark Iron', 'Captain Rogers', 'Hulk banner', 'Spidy Parker']

因此,正如我们在输出中看到的,我们已经将已定义数据帧的著名名称列转换为一个列表,并将其打印在输出中。

方法 2:将数据帧转换为嵌套列表

在这种方法中,我们将把给定的数据帧转换成嵌套列表,该列表将分别包含数据帧中所有列的所有行。

我们将在下面的示例中使用该方法来理解它的实现:

示例-


# Importing Pandas module as jtp
import pandas as jtp
GivenData = {'Famous Name':['Stark Iron', 'Captain Rogers', 'Hulk banner', 'Spidy Parker' ],
             'Age': [42, 95, 38, 18] }  
# Creating DataFrame with DataFrame() function 
dataFrame = jtp.DataFrame(GivenData)  
# Initializing empty list
ResultList = []

# Using for loop to iterating through dataframe columns
for column in dataFrame.columns:
    listing = dataFrame[column].tolist()
    ResultList.append(listing) # appending dataframe columns into list

# Print the converted list data
print(ResultList)

输出:

[['Stark Iron', 'Captain Rogers', 'Hulk banner', 'Spidy Parker'], [42, 95, 38, 18]]

方法 3:将数据帧转换为嵌套的列列表

在这种方法下,我们将把一个给定的数据帧转换成一个列表,该列表将包含多个列表,这些列表包含一行的所有列。

看下面的程序来理解这个方法的实现:

示例-


# Importing Panda module as jtp
import pandas as jtp
GivenData = {'Famous Name':['Stark Iron', 'Captain Rogers', 'Hulk banner', 'Spidy Parker' ],
             'Age': [42, 95, 38, 18] }  
# Creating DataFrame with DataFrame() function 
dataFrame = jtp.DataFrame(GivenData)  
# Converting dataframe into a list
List = dataFrame.values.tolist()
# Print converted list data as result
print(List)

输出:

[['Stark Iron', 42], ['Captain Rogers', 95], ['Hulk banner', 38], ['Spidy Parker', 18]]

这就是我们如何使用这个方法将给定的数据帧转换成一个包含多个列表的列表,这些列表包含来自所有列和行的数据。

方法 4:将数据帧转换为包含列名的列表

当我们想要将给定的数据帧转换为包含多个列表的列表时,我们使用此方法,这些列表的所有列都带有数据帧的列名和行。

我们将在下面的示例中使用该方法来理解它的实现:

示例-


# Importing Panda module as jtp
import pandas as jtp
GivenData = {'Famous Name':['Stark Iron', 'Captain Rogers', 'Hulk banner', 'Spidy Parker' ],
             'Age': [42, 95, 38, 18] }  
# Creating DataFrame with DataFrame() function 
dataFrame = jtp.DataFrame(GivenData)

# Converting dataframe into multiple lists
listing = [dataFrame.columns.values.tolist()] + dataFrame.values.tolist()
# Printing the converted list data
print(listing)

输出:

[['Famous Name', 'Age'], ['Stark Iron', 42], ['Captain Rogers', 95], ['Hulk banner', 38], ['Spidy Parker', 18]]