当前位置: 首页 > news >正文

Pandas使用教程:从入门到实战的数据分析利器

一、Pandas基础入门

在这里插入图片描述

1.1 什么是Pandas

Pandas是Python生态中核心的数据分析库,提供高效的数据结构(Series/DataFrame)和数据分析工具。其名称源于"Panel Data"(面板数据)和"Python Data Analysis"的组合,由Wes McKinney于2008年开发,现已成为数据科学领域的标准工具。

1.2 核心数据结构

1.2.1 Series:一维标记数组

import pandas as pd
s = pd.Series([5, 2, 3], index=['A', 'B', 'C'])
  • 特性:类似带标签的NumPy数组
  • 操作:s['A'] 获取值,s + 2 向量运算

1.2.2 DataFrame:二维表格结构

df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['NY', 'SF', 'LA']
})
  • 特性:支持异构数据类型,类似Excel表格
  • 核心属性:df.shape, df.dtypes, df.columns

二、数据加载与输出

2.1 数据导入

# CSV文件
df = pd.read_csv('data.csv', parse_dates=['date_column'])# Excel文件
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')# JSON数据
df = pd.read_json('data.json', orient='records')
  • 高级参数:skiprows, nrows, chunksize(分块读取)

2.2 数据导出

df.to_csv('cleaned_data.csv', index=False, encoding='utf-8')
df.to_excel('report.xlsx', sheet_name='Results')

三、数据清洗核心技巧

3.1 缺失值处理

3.1.1 检测缺失值

df.isnull().sum()  # 各列缺失值统计

3.1.2 处理策略

# 删除缺失值
df.dropna(subset=['Age'], inplace=True)# 填充缺失值
df['Salary'].fillna(df['Salary'].mean(), inplace=True)

3.2 数据去重

# 检测重复行
df.duplicated().sum()# 删除重复行
df.drop_duplicates(subset=['ID'], keep='last', inplace=True)

3.3 数据类型转换

df['BirthDate'] = pd.to_datetime(df['BirthDate'], format='%Y-%m-%d')
df['Category'] = df['Category'].astype('category')

四、数据选择与过滤

4.1 基础索引

# 选择列
df[['Name', 'Age']]# 选择行(前5行)
df.head()

4.2 高级索引

4.2.1 loc标签索引

df.loc[df['Age'] > 30, ['Name', 'City']]

4.2.2 iloc位置索引

df.iloc[1:4, 0:2]  # 选取2-4行,1-2列

4.2.3 布尔索引

mask = (df['Score'] >= 80) & (df['Attempts'] < 5)
df[mask]

五、数据操作与转换

5.1 列操作

# 添加新列
df['Salary'] = df['Salary'] * 1.1  # 涨薪10%# 删除列
df.drop('TempColumn', axis=1, inplace=True)# 重命名列
df.rename(columns={'OldName': 'NewName'}, inplace=True)

5.2 数据合并

5.2.1 横向合并

pd.merge(df1, df2, on='ID', how='inner')  # 支持inner/left/right/outer

5.2.2 纵向合并

pd.concat([df1, df2], axis=0, ignore_index=True)

5.3 分组聚合

df.groupby('Department')['Salary'].agg(['mean', 'sum'])

六、高级功能应用

6.1 时间序列处理

# 创建时间范围
dates = pd.date_range('20250101', periods=365)# 重采样
df.resample('M').mean()  # 月度重采样# 滑动窗口
df['RollingMean'] = df['Value'].rolling(window=7).mean()

6.2 文本处理

# 字符串方法
df['Name'].str.upper()# 正则表达式
df['Email'].str.extract(r'(\w+)@(\w+\.com)')

6.3 数据可视化集成

import matplotlib.pyplot as pltdf['Age'].plot(kind='hist', bins=10)
plt.savefig('age_distribution.png')

七、性能优化技巧

7.1 内存优化

# 修改数据类型
df['ID'] = df['ID'].astype('int32')# 分类数据类型
df['Category'] = df['Category'].astype('category')

7.2 向量化操作

# 避免循环,使用内置函数
df['NewCol'] = df['Col1'] + df['Col2']

7.3 分块处理

chunk_iter = pd.read_csv('big_data.csv', chunksize=10000)
for chunk in chunk_iter:process(chunk)

八、实战案例:电商数据分析

8.1 案例背景

分析某电商平台用户行为数据,包含:

  • 用户ID、商品ID、购买数量、金额、时间戳

8.2 数据预处理

# 转换时间戳
df['OrderTime'] = pd.to_datetime(df['OrderTime'])# 计算客单价
df['UnitPrice'] = df['Amount'] / df['Quantity']

8.3 深度分析

# 用户购买周期分析
df.groupby('UserID')['OrderTime'].diff().mean()# 商品关联分析
pd.crosstab(df['ProductA'], df['ProductB'])

8.4 结果可视化

import seaborn as snssns.boxplot(x='Category', y='Sales', data=df)
plt.title('Category Sales Distribution')
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig('sales_analysis.png')

九、学习资源推荐

官方文档:https://pandas.pydata.org/docs/
实战书籍:《利用Python进行数据分析》
练习平台:Kaggle、DataCamp
进阶资源:Dask(并行计算)、Modin(分布式Pandas)

相关文章:

  • Postman 的 Jenkins 管理 - 手动构建
  • 【Docker基础】Docker镜像管理:docker tag详解
  • UE官方文档学习 TAarry 查询
  • Transformer结构介绍
  • FreeRTOS 任务管理学习笔记
  • 《解锁软件世界的“百宝箱”:从库、包到管理器》
  • C++实现手写strstr函数
  • C++ inline变量
  • Linux树莓派项目实战:外网访问、PWM呼吸灯、超声波测距与驱动开发
  • 记录存储的使用
  • 股票心理学习篇:交易的人性弱点 - 频繁交易
  • Windows 和 macOS 串口调试软件
  • MCAL学习(6)——诊断、DCM
  • Python-循环结构解析
  • WPF xaml 中设置ResourceDictionary中的全局变量
  • 【机械视觉】Halcon—【十五、一维码(条形码)和二维码识别】
  • 【八股消消乐】构建微服务架构体系—保证服务高可用
  • 华为OD机试_2025 B卷_玩牌高手(Python,100分)(附详细解题思路)
  • 从C++编程入手设计模式——装饰器模式
  • Dify 推出全新版本!Dify-v1.4.3本地部署教程:开发效率飙升,快速打造 AI 应用!
  • 做外贸做的很好的网站/什么是指数基金
  • 怎么看一个网站什么语言做的/获取排名
  • 广州做营销型网站哪家好/企业网站制作方案
  • 西安企业做网站多少钱/站长工具综合查询
  • 滨州内做网站的公司/semantic scholar
  • 扶贫基金会网站建设是哪家公司/深圳网络推广网站推广