Pandas 简介与安装
Pandas 简介与安装
目录
- 什么是 Pandas
- Pandas 的历史
- 为什么选择 Pandas
- 安装 Pandas
- 导入 Pandas
- 验证安装
- 基本使用示例
什么是 Pandas
Pandas 是一个开源的 BSD 许可的 Python 库,提供高性能、易于使用的数据结构和数据分析工具。Pandas 的名称来源于"面板数据"(Panel Data),这是一个计量经济学术语,指包含多个时间段的多维数据集。
核心数据结构
Pandas 主要有两个核心数据结构:
- Series(序列):一维标记数组,类似于带标签的列表或数组
- DataFrame(数据框):二维标记数据结构,类似于电子表格或 SQL 表
Pandas 的历史
- 2008年:Wes McKinney 开始开发 Pandas
- 2009年:首次公开发布
- 2015年:NumFOCUS 成为 Pandas 的财政赞助商
- 现在:Pandas 是最受欢迎的 Python 数据分析库之一
为什么选择 Pandas
1. 数据读取和写入简单
Pandas 支持多种文件格式(CSV、Excel、JSON、SQL、HDF5等)
import pandas as pd# 读取 CSV 文件只需要一行代码
df = pd.read_csv('data.csv')# 读取 Excel 文件
df = pd.read_excel('data.xlsx')# 读取 JSON 文件
df = pd.read_json('data.json')
2. 数据清洗功能强大
提供了丰富的数据清洗工具,处理缺失值、重复值、异常值等
# 删除缺失值
df.dropna()# 填充缺失值
df.fillna(0)# 删除重复值
df.drop_duplicates()
3. 数据操作灵活
提供了类似于 SQL 的数据操作功能
# 分组聚合
df.groupby('category').mean()# 数据过滤
df[df['age'] > 18]# 数据排序
df.sort_values('age')
4. 与 NumPy 无缝集成
Pandas 构建在 NumPy 之上,可以轻松与 NumPy 数组交互
import numpy as np
import pandas as pd# 从 NumPy 数组创建 DataFrame
arr = np.array([[1, 2, 3], [4, 5, 6]])
df = pd.DataFrame(arr, columns=['A', 'B', 'C'])# DataFrame 转换为 NumPy 数组
arr = df.values
安装 Pandas
使用 pip 安装(推荐)
pip install pandas
使用 conda 安装
conda install pandas
指定版本安装
# 安装特定版本
pip install pandas==2.0.0# 安装最新版本
pip install pandas --upgrade
安装可选依赖
Pandas 有一些可选依赖,用于支持特定功能:
# 安装 Excel 支持(需要 openpyxl 或 xlrd)
pip install pandas openpyxl# 安装 HDF5 支持
pip install pandas tables# 安装数据库支持
pip install pandas sqlalchemy pymysql# 安装完整支持(包括所有可选依赖)
pip install pandas[all]
导入 Pandas
标准的 Pandas 导入方式:
import pandas as pd
这是社区广泛采用的标准导入方式,pd 是 Pandas 的约定别名。
检查 Pandas 版本
import pandas as pdprint(pd.__version__)
# 输出:2.1.0(具体版本取决于你的安装)# 查看版本信息
print(pd.show_versions())
验证安装
创建一个简单的脚本来验证 Pandas 是否正常安装:
import pandas as pd
import numpy as np# 创建一个简单的 DataFrame
data = {'姓名': ['张三', '李四', '王五'],'年龄': [25, 30, 35],'城市': ['北京', '上海', '广州']
}df = pd.DataFrame(data)
print(df)# 输出:
# 姓名 年龄 城市
# 0 张三 25 北京
# 1 李四 30 上海
# 2 王五 35 广州
如果上述代码能够正常运行并输出结果,说明 Pandas 安装成功。
基本使用示例
示例 1:创建简单的数据
import pandas as pd# 创建 Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)
# 输出:
# 0 1
# 1 3
# 2 5
# 3 7
# 4 9
# dtype: int64# 创建 DataFrame
df = pd.DataFrame({'产品': ['苹果', '香蕉', '橙子'],'价格': [5.5, 3.2, 4.8],'库存': [100, 150, 80]
})
print(df)
# 输出:
# 产品 价格 库存
# 0 苹果 5.5 100
# 1 香蕉 3.2 150
# 2 橙子 4.8 80
示例 2:数据统计
import pandas as pddata = {'销售员': ['张三', '李四', '王五', '赵六'],'销售额': [12000, 15000, 18000, 14000],'订单数': [45, 52, 60, 48]
}df = pd.DataFrame(data)# 基本统计信息
print(df.describe())# 平均值
print(f"平均销售额: {df['销售额'].mean()}")# 总和
print(f"总销售额: {df['销售额'].sum()}")# 最大值和最小值
print(f"最高销售额: {df['销售额'].max()}")
print(f"最低销售额: {df['销售额'].min()}")
示例 3:数据筛选
import pandas as pddata = {'姓名': ['张三', '李四', '王五', '赵六'],'年龄': [25, 30, 35, 28],'部门': ['销售', '技术', '销售', '技术'],'工资': [8000, 12000, 9000, 11000]
}df = pd.DataFrame(data)# 筛选年龄大于 30 的员工
filtered = df[df['年龄'] > 30]
print(filtered)# 筛选销售部门的员工
sales_dept = df[df['部门'] == '销售']
print(sales_dept)# 多重条件筛选
result = df[(df['年龄'] > 25) & (df['工资'] > 9000)]
print(result)
参考资料
- Pandas 官方文档
- Pandas GitHub 仓库
- Pandas 用户指南
