初识 Pandas:Python 数据分析的利器
在数据分析、数据清洗和可视化等领域,Python 无疑是最受欢迎的语言之一,而在 Python 的数据处理生态中,Pandas 是最核心、最基础的库之一。如果你接触数据分析、机器学习、金融建模,或者只是想处理一些 Excel 表格,那么学会 Pandas 是你不可避免的一步。
本文将系统介绍 Pandas 的基础知识,包括其核心数据结构、常用功能和实际应用示例,帮助你打下坚实的 Pandas 基础。
一、Pandas 是什么?
Pandas 是一个基于 NumPy 构建的数据分析库,由 Wes McKinney 在 2008 年开发。Pandas 的目标是提供灵活、高效、易于使用的数据结构和数据分析工具。
Pandas 的名字来源于“panel data”,即经济学中的“面板数据”。
二、Pandas 的两大核心数据结构
1. Series:一维标记数组
可以理解为带标签的一维数组,可以存储任意类型的数据(整数、浮点数、字符串等)。
import pandas as pds = pd.Series([1, 3, 5, None, 6])
print(s)
输出:
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
dtype: float64
特点:
-
自动生成索引(也可以自定义索引)
-
支持缺失值(NaN)
-
支持向量化操作
2. DataFrame:二维表格型数据结构
可以看作是由多个 Series 按列组成的二维表,类似 Excel 表格或者数据库表。
data = {'姓名': ['张三', '李四', '王五'],'年龄': [25, 30, 28],'城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data)
print(df)
输出:
姓名 年龄 城市
0 张三 25 北京
1 李四 30 上海
2 王五 28 广州
三、读取与保存数据
Pandas 支持多种格式的数据读写:
# 读取 CSV 文件
df = pd.read_csv('data.csv')# 写入 CSV 文件
df.to_csv('output.csv', index=False)# 读取 Excel 文件
df = pd.read_excel('data.xlsx')# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)# 读取 JSON 文件
df = pd.read_json('data.json')
四、常用操作
1. 查看数据
df.head() # 查看前5行
df.tail(3) # 查看后3行
df.info() # 数据摘要信息
df.describe() # 数据统计摘要
2. 选择数据
df['姓名'] # 选择一列
df[['姓名', '城市']] # 选择多列
df.iloc[0] # 按行号选择第1行
df.loc[1, '年龄'] # 按标签选取
3. 过滤数据
df[df['年龄'] > 27] # 年龄大于27的行
4. 修改数据
df['年龄'] = df['年龄'] + 1 # 所有年龄加1
df.loc[0, '城市'] = '深圳' # 修改单元格
五、缺失值处理
df.isnull() # 判断缺失
df.dropna() # 删除缺失值
df.fillna(0) # 填充缺失值
六、分组与聚合(GroupBy)
grouped = df.groupby('城市')
print(grouped['年龄'].mean()) # 每个城市的平均年龄
七、合并与拼接
拼接(上下或左右)
pd.concat([df1, df2], axis=0) # 纵向拼接
pd.concat([df1, df2], axis=1) # 横向拼接
合并(类似 SQL 的 JOIN)
pd.merge(df1, df2, on='id', how='inner')
八、排序
df.sort_values(by='年龄') # 按年龄升序
df.sort_values(by='年龄', ascending=False) # 降序
九、应用函数
df['年龄'].apply(lambda x: x + 10) # 每个年龄加10
df.applymap(str) # 对整个 DataFrame 应用函数
十、实际案例:读取 CSV 并统计分析
假设我们有一个名为 sales.csv
的销售数据文件:
日期,销售额,地区
2023-01-01,1000,北京
2023-01-02,1200,上海
2023-01-03,800,广州
df = pd.read_csv('sales.csv')
print(df.groupby('地区')['销售额'].sum())
输出:
地区
上海 1200
北京 1000
广州 800
Name: 销售额, dtype: int64
结语
Pandas 是数据处理的瑞士军刀,无论你是分析师、数据科学家,还是工程师,都值得深入学习。本文只是入门介绍,实际应用中 Pandas 的功能远不止于此,比如时间序列分析、多重索引、高性能数据读取等。
下一步建议深入学习:
-
Pandas 官方文档:pandas documentation — pandas 2.2.3 documentation
-
结合 Matplotlib/Seaborn 进行可视化
-
实战项目练习,例如 Kaggle 竞赛