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中最受欢迎的库之一。