python-pandas操作

1. 简介

Python是一种高级编程语言,适用于多种领域,其中数据科学是其中之一。对于数据处理,Python提供了pandas库。

pandas是Python库,主要用于数据处理和数据分析。该库提供了数据结构,包括Series和DataFrame等。使用pandas,用户可以容易地处理结构化数据,包括读取、过滤、增加和删除行和列、填充缺失数据、聚合等等。

2. 安装pandas库

要使用pandas库,需要安装它。建议使用pip安装。在命令行窗口或终端中输入以下命令:

pip install pandas

3. 创建数据

在创建DataFrame之前,需要先创建数据。在Python中,使用嵌套列表或字典来创建数据。DataFrame的每个行和列必须具有相同的长度。

3.1 创建DataFrame

下面是使用嵌套列表创建DataFrame的示例:

import pandas as pd

data = [['Alice', 21], ['Bob', 25], ['Charlie', 30]]

df = pd.DataFrame(data, columns=['Name', 'Age'])

print(df)

输出如下:

Name Age

0 Alice 21

1 Bob 25

2 Charlie 30

3.2 从CSV文件创建DataFrame

在数据科学中,通常使用CSV文件存储结构化数据。pandas提供了从CSV文件创建DataFrame的功能。只需使用read_csv()方法,并提供文件路径。

下面是读取CSV文件并创建DataFrame的示例:

import pandas as pd

df = pd.read_csv('data.csv')

print(df)

上面的代码假设数据文件名为data.csv,位于当前工作目录中。

4. 数据分析

在创建数据之后,我们可以进行各种数据分析。以下是一些示例。

4.1 查看数据

可以使用head()和tail()方法查看DataFrame的前几行和后几行。默认情况下,这些方法显示前5行或后5行。

以下是一个查看前3行的示例:

import pandas as pd

data = [['Alice', 21], ['Bob', 25], ['Charlie', 30]]

df = pd.DataFrame(data, columns=['Name', 'Age'])

print(df.head(3))

输出如下:

Name Age

0 Alice 21

1 Bob 25

2 Charlie 30

4.2 筛选数据

可以使用loc[]方法进行筛选。 loc[]方法需要一个布尔数组作为输入,该数组指定要选择哪些行。以下是一个示例:

import pandas as pd

data = [['Alice', 21], ['Bob', 25], ['Charlie', 30]]

df = pd.DataFrame(data, columns=['Name', 'Age'])

# 筛选年龄大于等于25岁的人

filtered_df = df.loc[df['Age'] >= 25]

print(filtered_df)

输出如下:

Name Age

1 Bob 25

2 Charlie 30

4.3 排序数据

可以使用sort_values()方法对DataFrame的行进行排序。以下是一个按照年龄排序的示例:

import pandas as pd

data = [['Alice', 21], ['Bob', 25], ['Charlie', 30]]

df = pd.DataFrame(data, columns=['Name', 'Age'])

sorted_df = df.sort_values('Age')

print(sorted_df)

输出如下:

Name Age

0 Alice 21

1 Bob 25

2 Charlie 30

4.4 聚合数据

可以使用groupby()方法对DataFrame进行聚合。以下是一个按照年龄求平均值的示例:

import pandas as pd

data = [['Alice', 21, 'Female'], ['Bob', 25, 'Male'], ['Charlie', 30, 'Male'], ['Diana', 28, 'Female']]

df = pd.DataFrame(data, columns=['Name', 'Age', 'Gender'])

grouped_df = df.groupby('Gender').mean()

print(grouped_df)

输出如下:

Age

Gender

Female 24.500

Male 28.333

4.5 合并数据

有时候需要将两个或多个DataFrame合并成一个。可以使用concat()方法进行合并。

以下是一个示例,将两个DataFrame按行合并:

import pandas as pd

data1 = [['Alice', 21], ['Bob', 25], ['Charlie', 30]]

data2 = [['Diana', 28], ['Ethan', 20], ['Frank', 24]]

df1 = pd.DataFrame(data1, columns=['Name', 'Age'])

df2 = pd.DataFrame(data2, columns=['Name', 'Age'])

merged = pd.concat([df1, df2])

print(merged)

输出如下:

Name Age

0 Alice 21

1 Bob 25

2 Charlie 30

0 Diana 28

1 Ethan 20

2 Frank 24

4.6 填补缺失数据

在真实世界的数据中,存在缺失数据的情况。可以使用fillna()方法填充缺失数据。以下是一个示例,用平均值填充缺失的年龄数据:

import pandas as pd

import numpy as np

data = [['Alice', np.nan], ['Bob', 25], ['Charlie', np.nan], ['Diana', 28]]

df = pd.DataFrame(data, columns=['Name', 'Age'])

filled_df = df.fillna(df.mean())

print(filled_df)

输出如下:

Name Age

0 Alice 26.50

1 Bob 25.00

2 Charlie 26.50

3 Diana 28.00

4.7 删除数据

可以使用drop()方法删除DataFrame的行或列。以下是一个删除年龄列的示例:

import pandas as pd

data = [['Alice', 21, 'Female'], ['Bob', 25, 'Male'], ['Charlie', 30, 'Male'], ['Diana', 28, 'Female']]

df = pd.DataFrame(data, columns=['Name', 'Age', 'Gender'])

new_df = df.drop('Age', axis=1)

print(new_df)

输出如下:

Name Gender

0 Alice Female

1 Bob Male

2 Charlie Male

3 Diana Female

5. 结束语

pandas库提供了几乎所有处理结构化数据的功能。无论您是在进行数据清理、数据转换还是在分析数据,pandas都是必备之选。在数据科学领域,pandas是Python中最受欢迎的库之一。

后端开发标签