本文详细介绍 Pandas 库的基础知识,包括:
Pandas 是 Python 中最流行的数据分析库之一,它提供了高性能、易用的数据结构和数据分析工具。Pandas 的名字来源于 “Panel Data”(面板数据),这是一个计量经济学术语,用于描述多维结构化数据集。
强大的数据结构
灵活的数据处理能力
丰富的数据分析功能
高性能
特性 | Pandas | NumPy | Excel |
---|---|---|---|
数据结构 | Series, DataFrame | ndarray | 表格 |
处理速度 | 快 | 非常快 | 较慢 |
内存使用 | 中等 | 低 | 高 |
可视化 | 基础 | 无 | 丰富 |
适用场景 | 数据分析、清洗 | 科学计算 | 简单分析 |
使用 pip 安装:
pip install pandas
使用 conda 安装:
conda install pandas
在 Python 中导入 Pandas:
import pandas as pd
检查 Pandas 版本:
import pandas as pd
print(pd.__version__)
Series 是 Pandas 中最基本的数据结构,它是一个一维的带标签数组。
# 从列表创建
s1 = pd.Series([1, 3, 5, 7, 9])
# 从字典创建
s2 = pd.Series({'a': 1, 'b': 2, 'c': 3})
# 指定索引
s3 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
# 访问数据
print(s1[0]) # 通过位置访问
print(s2['a']) # 通过标签访问
# 数学运算
print(s1.mean()) # 计算平均值
print(s1.sum()) # 计算总和
# 布尔索引
print(s1[s1 > 5]) # 选择大于5的值
# 位置索引
print(s1[0:3]) # 选择前三个元素
# 标签索引
print(s2['a':'c']) # 选择标签从a到c的元素
# 条件索引
print(s1[s1 > 5]) # 选择大于5的元素
DataFrame 是 Pandas 中最常用的数据结构,它是一个二维的表格型数据结构。
# 从字典创建
df1 = pd.DataFrame({
'A': [1, 2, 3],
'B': ['a', 'b', 'c']
})
# 从列表创建
df2 = pd.DataFrame([
[1, 'a'],
[2, 'b'],
[3, 'c']
], columns=['A', 'B'])
# 从 NumPy 数组创建
import numpy as np
df3 = pd.DataFrame(np.random.randn(3, 3))
# 查看数据
print(df1.head()) # 查看前几行
print(df1.tail()) # 查看后几行
print(df1.info()) # 查看数据信息
# 选择列
print(df1['A']) # 选择单列
print(df1[['A', 'B']]) # 选择多列
# 选择行
print(df1.iloc[0]) # 通过位置选择行
print(df1.loc[0]) # 通过标签选择行
# 选择特定行和列
print(df1.iloc[0:2, 0:1]) # 选择前两行第一列
# 条件选择
print(df1[df1['A'] > 1]) # 选择A列大于1的行
# 多条件选择
print(df1[(df1['A'] > 1) & (df1['B'] == 'b')])
Pandas 支持多种数值类型:
# 查看数据类型
print(df1.dtypes)
# 转换数据类型
df1['A'] = df1['A'].astype('float64')
Pandas 中的字符串操作:
# 字符串方法
df1['B'] = df1['B'].str.upper() # 转换为大写
df1['B'] = df1['B'].str.lower() # 转换为小写
Pandas 提供了强大的时间序列处理功能:
# 创建时间序列
dates = pd.date_range('20230101', periods=3)
df1['date'] = dates
# 时间操作
df1['date'] = df1['date'] + pd.Timedelta(days=1)
使用分类数据可以节省内存并提高性能:
# 创建分类数据
df1['B'] = df1['B'].astype('category')
Pandas 提供了多种处理缺失值的方法:
# 检查缺失值
print(df1.isnull())
# 删除缺失值
df1.dropna()
# 填充缺失值
df1.fillna(0) # 用0填充
df1.fillna(method='ffill') # 用前一个值填充
# 创建学生成绩数据
scores = pd.DataFrame({
'姓名': ['张三', '李四', '王五', '赵六'],
'语文': [85, 92, 78, 88],
'数学': [92, 88, 95, 82],
'英语': [88, 85, 90, 87]
})
# 计算平均分
scores['平均分'] = scores[['语文', '数学', '英语']].mean(axis=1)
# 按平均分排序
scores_sorted = scores.sort_values('平均分', ascending=False)
# 显示结果
print(scores_sorted)
# 创建销售数据
sales = pd.DataFrame({
'日期': pd.date_range('20230101', periods=5),
'产品': ['A', 'B', 'A', 'C', 'B'],
'销量': [100, 150, 120, 80, 200],
'单价': [10, 15, 10, 20, 15]
})
# 计算销售额
sales['销售额'] = sales['销量'] * sales['单价']
# 按产品分组统计
product_stats = sales.groupby('产品').agg({
'销量': 'sum',
'销售额': 'sum'
})
# 显示结果
print(product_stats)
Pandas 基础部分涵盖了:
这些基础知识是使用 Pandas 进行数据分析的基础,掌握这些内容后,您就可以开始进行更复杂的数据分析工作了。在实际应用中,建议多练习这些基础操作,熟悉各种数据结构的特性和使用方法,为后续的进阶学习打下坚实的基础。