Pandas 是 Python 数据分析领域的核心工具库,与 NumPy、Matplotlib 并称为「数据分析三剑客」。它提供了高效的数据结构和数据分析工具,尤其适合处理结构化数据(如表格数据)。以下是 Pandas 的核心知识框架和实战指南:
一、Pandas 核心数据结构
1. Series
- 一维标记数组,可存储任意数据类型(整数、字符串、浮点数等)
- 示例:
- python
- import pandas as pds = pd.Series([1, 3, 5, 'a'], index=['A', 'B', 'C', 'D'])
2. DataFrame
- 二维表格型数据结构(类似 Excel 表格)
- 核心特性:
- 每列可以是不同数据类型
- 支持行/列标签操作
- 示例:
- python
- data = { 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'London', 'Tokyo']}df = pd.DataFrame(data)
二、数据读取与写入
1. 读取数据
python
# 读取 CSVdf = pd.read_csv('data.csv', encoding='utf-8') # 读取 Exceldf = pd.read_excel('data.xlsx', sheet_name='Sheet1') # 读取数据库import sqlite3conn = sqlite3.connect('database.db')df = pd.read_sql('SELECT * FROM table', conn)
2. 写入数据
python
df.to_csv('output.csv', index=False) # 不保存索引df.to_excel('output.xlsx', sheet_name='Results')
三、数据清洗与预处理
1. 处理缺失值
python
# 检测缺失值df.isnull().sum() # 删除缺失值df.dropna(axis=0) # 删除含缺失值的行 # 填充缺失值df.fillna(value=0) # 用0填充df['Age'].fillna(df['Age'].mean(), inplace=True) # 用均值填充
2. 数据去重
python
df.drop_duplicates(subset=['Name'], keep='first')
3. 数据类型转换
python
df['Date'] = pd.to_datetime(df['Date']) # 转为时间格式df['Price'] = df['Price'].astype(float) # 转为浮点型
四、核心操作技巧
1. 数据筛选
python
# 条件筛选df[df['Age'] > 30] # 多条件筛选df[(df['Age'] > 25) & (df['City'] == 'London')] # 字符串匹配df[df['Name'].str.contains('^A')] # 名字以A开头
2. 数据分组与聚合
python
# 按城市分组计算平均年龄df.groupby('City')['Age'].mean() # 多重聚合df.groupby('City').agg({ 'Age': ['mean', 'max'], 'Salary': 'sum'})
3. 数据合并
python
# 横向合并(类似 SQL JOIN)pd.merge(df1, df2, on='ID', how='left') # 纵向合并pd.concat([df1, df2], axis=0)
五、高级功能
1. 时间序列处理
python
# 生成时间序列dates = pd.date_range('20230101', periods=6) # 重采样df.resample('M').sum() # 按月统计 # 时间差计算df['Time_Diff'] = df['End_Time'] - df['Start_Time']
2. 数据可视化(需配合 Matplotlib)
python
import matplotlib.pyplot <img src=url"dyikw.cn, ofodk.cn, uiousl.cn, res.mp.sohu.com">as pltdf.plot(x='Date', y='Sales', kind='line')plt.show()
3. 性能优化
python
# 设置合适的索引df.set_index('ID', inplace=True) # 使用向量化操作df['Total'] = df['Price'] * df['Quantity'] # 代替逐行计算
六、实战案例:销售数据分析
python
# 读取数据sales = pd.read_csv('sales_data.csv') # 数据清洗sales.dropna(subset=['Product'], inplace=True)sales['Date'] = pd.to_datetime(sales['Date']) # 分析季度销售趋势sales.set_index('Date', inplace=True)quarterly_sales = sales.resample('Q').sum()['Revenue'] <img src=url"ieiio.cn, iiioj.cn, oifeji.cn, res.mp.sohu.com"># 可视化展示quarterly_sales.plot(kind='bar', title='Quarterly Sales')plt.ylabel('Revenue (USD)')plt.show()
七、学习建议
- 官方文档:https://pandas.pydata.org/docs/
- 练习数据集:使用 Kaggle 提供的公开数据集
- 进阶方向:
- 学习 groupby + apply 组合操作
- 掌握 pivot_table 数据透视表
- 了解 pd.cut 分箱操作
- 结合 Seaborn 进行高级可视化
掌握 Pandas 后,建议继续学习:
- Matplotlib/Seaborn:数据可视化
- SQL:数据库查询
- 统计学基础:为数据分析提供理论支撑
Pandas 的强大之处在于其灵活性和生态整合能力,建议通过实际项目(如电商销售分析、金融数据建模)巩固知识。