Pandas DataFrame 转换为列表

Pandas DataFrame 转换为列表

参考:pandas dataframe to list

Pandas 是一个强大的 Python 数据分析工具库,它提供了许多方便的数据操作功能,其中之一就是将 DataFrame 数据结构转换为 Python 的基本数据结构列表(List)。本文将详细介绍如何使用 Pandas 将 DataFrame 转换为列表,并提供多个示例代码以供参考。

1. 将整个 DataFrame 转换为列表

DataFrame 可以通过多种方式转换为列表,最直接的方式是使用 values 属性,它会将 DataFrame 中的数据以 numpy 数组的形式返回,然后可以使用 tolist() 方法将其转换为列表。

示例代码 1

import pandas as pd

data = {'Column1': ['pandasdataframe.com', 'example2', 'example3'],
        'Column2': [10, 20, 30]}
df = pd.DataFrame(data)
list_result = df.values.tolist()
print(list_result)

Output:

Pandas DataFrame 转换为列表

2. 将 DataFrame 的某一列转换为列表

如果只需要将 DataFrame 中的某一列转换为列表,可以直接使用列名进行索引,然后调用 tolist() 方法。

示例代码 2

import pandas as pd

data = {'Column1': ['pandasdataframe.com', 'example2', 'example3'],
        'Column2': [10, 20, 30]}
df = pd.DataFrame(data)
column_list = df['Column1'].tolist()
print(column_list)

Output:

Pandas DataFrame 转换为列表

3. 使用 apply() 方法转换 DataFrame

apply() 方法可以在 DataFrame 的轴上应用一个函数,通过这种方式,我们可以实现复杂的转换逻辑。

示例代码 3

import pandas as pd

data = {'Column1': ['pandasdataframe.com', 'example2', 'example3'],
        'Column2': [10, 20, 30]}
df = pd.DataFrame(data)
list_result = df.apply(list, axis=1)
print(list_result)

Output:

Pandas DataFrame 转换为列表

4. 使用 iterrows() 遍历 DataFrame 转换为列表

iterrows() 是一个生成器,它逐行遍历 DataFrame,返回索引和行数据,这样我们可以手动将每行数据转换为列表。

示例代码 4

import pandas as pd

data = {'Column1': ['pandasdataframe.com', 'example2', 'example3'],
        'Column2': [10, 20, 30]}
df = pd.DataFrame(data)
list_result = [row.tolist() for index, row in df.iterrows()]
print(list_result)

Output:

Pandas DataFrame 转换为列表

5. 使用 itertuples() 遍历 DataFrame 转换为列表

itertuples() 方法会返回一个命名元组的迭代器,每个元组代表 DataFrame 中的一行。这个方法比 iterrows() 更快,因为它不会将行数据转换为 Series。

示例代码 5

import pandas as pd

data = {'Column1': ['pandasdataframe.com', 'example2', 'example3'],
        'Column2': [10, 20, 30]}
df = pd.DataFrame(data)
list_result = [list(row) for row in df.itertuples(index=False, name=None)]
print(list_result)

Output:

Pandas DataFrame 转换为列表

6. 使用 explode() 将列中的列表元素展开

如果 DataFrame 的某一列包含列表或其他可迭代对象,explode() 方法可以将这些元素展开成多行。

示例代码 6

import pandas as pd

data = {'Column1': [['pandasdataframe.com', 'example2'], ['example3', 'example4']],
        'Column2': [10, 20]}
df = pd.DataFrame(data)
exploded_list = df.explode('Column1')['Column1'].tolist()
print(exploded_list)

Output:

Pandas DataFrame 转换为列表

7. 结合 groupby()agg() 转换为列表

通过 groupby() 方法对数据进行分组,并使用 agg() 方法聚合每个组的数据到列表中。

示例代码 7

import pandas as pd

data = {'Group': ['A', 'A', 'B', 'B'],
        'Column1': ['pandasdataframe.com', 'example2', 'example3', 'example4']}
df = pd.DataFrame(data)
grouped_list = df.groupby('Group')['Column1'].agg(list)
print(grouped_list)

Output:

Pandas DataFrame 转换为列表

8. 使用 pivot_table() 转换并聚合为列表

pivot_table() 方法可以创建一个新的派生表,并可以使用聚合函数,比如将数据聚合成列表。

示例代码 8

import pandas as pd

data = {'Group': ['A', 'A', 'B', 'B'],
        'Column1': ['pandasdataframe.com', 'example2', 'example3', 'example4']}
df = pd.DataFrame(data)
pivot_list = df.pivot_table(index='Group', values='Column1', aggfunc=lambda x: list(x))
print(pivot_list)

Output:

Pandas DataFrame 转换为列表

9. 结合 concat()tolist() 转换为列表

使用 concat() 方法将多个 DataFrame 连接起来,然后转换为列表。

示例代码 9

import pandas as pd

data1 = {'Column1': ['pandasdataframe.com', 'example2']}
data2 = {'Column1': ['example3', 'example4']}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
df_concat = pd.concat([df1, df2])
concat_list = df_concat['Column1'].tolist()
print(concat_list)

Output:

Pandas DataFrame 转换为列表

10. 使用 merge()tolist() 转换为列表

通过 merge() 方法将两个 DataFrame 根据某些列合并,然后转换为列表。

示例代码 10

import pandas as pd

data1 = {'Key': ['K1', 'K2'], 'Column1': ['pandasdataframe.com', 'example2']}
data2 = {'Key': ['K1', 'K2'], 'Column2': [10, 20]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
df_merged = pd.merge(df1, df2, on='Key')
merged_list = df_merged['Column1'].tolist()
print(merged_list)

Output:

Pandas DataFrame 转换为列表

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程