您的位置:

PandasToList:将Pandas DataFrame转换成Python List

一、什么是Pandas DataFrame?

Pandas是一个基于NumPy的Python数据分析库,它包含多个数据结构,其中最主要的是DataFrame,它是一个表格型的数据结构,具有行和列的索引,可以看作是Excel或SQL中的一个表。DataFrame中的数据可以是数值、字符串或其他类型。

下面是一个示例代码,演示如何创建一个DataFrame:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 35, 45, 55],
        'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen']}
df = pd.DataFrame(data)
print(df)

输出:

       name  age       city
0     Alice   25    Beijing
1       Bob   35   Shanghai
2   Charlie   45  Guangzhou
3     David   55   Shenzhen

二、Pandas DataFrame转换成Python List的需求

在实际的开发中,我们可能需要将Pandas DataFrame转换成Python List,以方便进行一些操作。

例如,我们需要将一个DataFrame中的某一列提取出来,转换成列表,以方便进行其他处理,这时就需要将DataFrame转换成Python List。

下面是一个示例代码,演示如何将DataFrame的某一列转换成Python List:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 35, 45, 55],
        'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen']}
df = pd.DataFrame(data)
name_list = df['name'].tolist()
print(name_list)

输出:

['Alice', 'Bob', 'Charlie', 'David']

三、PandasToList实现代码

为了更方便地将Pandas DataFrame转换成Python List,我们可以写一个函数PandasToList,代码如下:

import pandas as pd
from typing import List

def PandasToList(df: pd.DataFrame) -> List[List]:
    return df.values.tolist()

这个函数可以将一个DataFrame转换成一个二维列表,每一行是一个列表,整个列表中包含所有行。

我们可以使用这个函数来将DataFrame转换成Python List,示例代码如下:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 35, 45, 55],
        'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen']}
df = pd.DataFrame(data)
data_list = PandasToList(df)
print(data_list)

输出:

[['Alice', 25, 'Beijing'],
 ['Bob', 35, 'Shanghai'],
 ['Charlie', 45, 'Guangzhou'],
 ['David', 55, 'Shenzhen']]

四、PandasToList函数的应用场景

PandasToList函数可以应用于多种场景,例如:

1、将DataFrame的某些列转换成Python List

我们可以使用PandasToList函数将DataFrame的某些列转换成Python List,以方便进行其他处理。

示例代码:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 35, 45, 55],
        'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen']}
df = pd.DataFrame(data)
name_age_list = PandasToList(df[['name', 'age']])
print(name_age_list)

输出:

[['Alice', 25],
 ['Bob', 35],
 ['Charlie', 45],
 ['David', 55]]

2、将DataFrame的数据导入数据库

我们可以使用PandasToList函数将DataFrame转换成Python List,然后将数据插入到数据库中。

示例代码:

import pandas as pd
import pymysql

conn = pymysql.connect(host='localhost', user='root', password='root', database='test_db', charset='utf8')
cursor = conn.cursor()

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 35, 45, 55],
        'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen']}
df = pd.DataFrame(data)
data_list = PandasToList(df)

for row in data_list:
    sql = "insert into user (name, age, city) values ('%s', %d, '%s')" % (row[0], row[1], row[2])
    cursor.execute(sql)
conn.commit()
conn.close()

这段代码将DataFrame转换成Python List,并将数据插入到了数据库中。

五、小结

本文介绍了Pandas DataFrame的基本概念,以及如何将DataFrame转换成Python List。我们还编写了一个PandasToList函数,方便进行转换操作。