📅  最后修改于: 2023-12-03 14:46:36.736000             🧑  作者: Mango
Pandas 是一个基于 NumPy 的开源 Python 数据分析库,它提供了快速,灵活和富于表现力的数据结构,旨在使数据操作变得简单而直观。Pandas 是 Python 数据科学生态系统的一个重要组成部分,它广泛应用于学术界,金融界,工业界等领域。
Pandas 提供了两种主要数据结构:Series 和 DataFrame。
Series 是一个类似于一维数组的对象,它由一组数据和一组与之相关的标签(即索引)组成。Series 可以存储任何数据类型,包括整数,浮点数,字符串,Python 对象等等。与 NumPy 数组不同的是,Series 可以有任意类型的索引,而不仅仅是整数索引。
import pandas as pd
# 创建一个 Series 对象
data = pd.Series([0.25, 0.5, 0.75, 1.0])
print(data)
# 输出:
# 0 0.25
# 1 0.50
# 2 0.75
# 3 1.00
# dtype: float64
DataFrame 是一个类似于二维表结构的对象,它包含一组有序的列,每列可以是不同的数据类型(整数,浮点数,字符串,Python 对象等等)。DataFrame 有行索引和列索引,可以看作是由 Series 组成的字典。
# 创建一个 DataFrame 对象
data = pd.DataFrame({'country': ['China', 'India', 'USA', 'Indonesia'],
'population': [1439, 1380, 331, 273],
'area': [9706961, 3287263, 9372610, 1904569]})
print(data)
# 输出:
# country population area
# 0 China 1439 9706961
# 1 India 1380 3287263
# 2 USA 331 9372610
# 3 Indonesia 273 1904569
Pandas 提供了一系列灵活而高效的操作方法,使得数据清洗、转换、合并、分组和透视等任务变得简单而直观。
Pandas 可以读写多种格式的数据,包括 CSV,Excel,SQL 数据库等等。Pandas 提供了一系列读写方法,如 read_csv
, read_excel
, read_sql
等等。
# 读取 CSV 文件
data = pd.read_csv('data.csv')
# 将 DataFrame 对象写入 CSV 文件
data.to_csv('data.csv')
Pandas 提供了丰富的数据清洗方法,包括缺失值处理、重复值处理、异常值处理等等。
# 丢弃包含缺失值的行或列
data.dropna() # 丢弃包含缺失值的行
data.dropna(axis=1) # 丢弃包含缺失值的列
# 填充缺失值
data.fillna(value=0)
# 查找重复值
data.duplicated() # 查找重复行
data.drop_duplicates() # 移除重复行
# 查找并替换异常值
data.replace(-999, np.nan) # 将 -999 替换为缺失值
Pandas 提供了丰富的数据转换方法,包括索引重置、数据类型转换、字符串操作等等。
# 索引重置
data.reset_index() # 重置列索引
data.set_index('column_name') # 重置行索引
# 数据类型转换
data['column_name'].astype('int') # 将列转换为整数类型
# 字符串操作
data['column_name'].str.upper() # 将字符串转换为大写
Pandas 提供了多种数据合并方法,包括连接、合并、拼接等等。
# 连接两个 DataFrame 对象
pd.concat([df1, df2], axis=0) # 将两个 DataFrame 沿着行方向连接
pd.concat([df1, df2], axis=1) # 将两个 DataFrame 沿着列方向连接
# 合并两个 DataFrame 对象
pd.merge(df1, df2, on='column_name') # 按照指定列进行合并
# 拼接两个 Series 对象
pd.concat([s1, s2], axis=0) # 将两个 Series 沿着行方向拼接
Pandas 提供了数据分组和透视的方法,方便进行统计和分析。
# 按照指定列进行分组并进行聚合操作
data.groupby('column_name').mean() # 求每组的平均值
data.groupby('column_name').sum() # 求每组的总和
# 透视表操作
data.pivot_table(values='column_name',
index=['column_name_1', 'column_name_2'],
columns='column_name_3',
aggfunc=np.mean)
Pandas 是一个非常强大的数据分析库,它提供了丰富的数据结构和操作方法,可以方便地进行数据清洗、转换、合并、分组和透视等任务。对于数据科学家和数据分析人员而言,学会 Pandas 是非常重要的。