微信登录

Pandas教程

数据分析

🐼 概述与安装

什么是Pandas?

Pandas是基于NumPy的数据分析库,提供高效的DataFrame结构(表格型数据)和Series结构(一维列数据),支持数据清洗、转换、统计和可视化。广泛应用于金融、科学、机器学习等领域。

安装与环境配置

  • Anaconda安装:推荐使用Anaconda,内置Pandas及Jupyter Notebook。
  • Jupyter Notebook使用:通过交互式环境编写代码(参考链接)。
  • 打印优化:设置pd.set_option()避免数据截断(配置方法)。

📊 Pandas核心数据结构

Series

类似一维数组,可通过pd.Series()创建,支持自定义索引和数据类型。

  1. import pandas as pd
  2. s = pd.Series([1, 3, 5], name="列名")
  3. ### DataFrame
  4. 二维表格数据,基础操作包括:
  5. - **创建空DataFrame**:`df = pd.DataFrame()`([方法详解](https://bookchips.com/chip/6850eb130b9569655f1202eb))。
  6. - **数据类型转换**:`df.astype("float64")`修改列类型([类型操作](https://bookchips.com/chip/6850eb130b9569655f1202c8))。
  7. - **列重命名**:`df.rename(columns={"旧列名": "新列名"})`([重命名技巧](https://bookchips.com/chip/6850eb130b9569655f1202b5))。

📁 Pandas数据导入与导出

读取数据

  • 从CSV/Excel/SQL读取
    1. pd.read_csv("data.csv") # [CSV文件读取](https://bookchips.com/chip/6850eb130b9569655f1202bd)
    2. pd.read_excel("data.xlsx") # [Excel文件读取](https://bookchips.com/chip/6850eb130b9569655f1202da)
  • 从JSON/HTML粘贴板读取
    pd.read_json()解析JSON字符串,pd.read_clipboard()获取粘贴板内容(更多方法)。

导出数据

  • 保存为CSV/Excel/SQL
    1. df.to_csv("output.csv") # [导出CSV](https://bookchips.com/chip/6850eb130b9569655f1202b9)
    2. df.to_excel("output.xlsx") # [导出Excel](https://bookchips.com/chip/6850eb130b9569655f1202d7)

🔧 Pandas数据清洗与转换

数据处理技巧

  • 处理空值df.dropna()删除空值行,df.fillna(0)填充默认值(空值处理)。
  • 数据去重df.drop_duplicates()移除重复行(去重方法)。
  • 字段拆分与合并
    • df.explode("列名")拆分列表字段为多行(拆分示例)。
    • pd.concat([df1, df2])合并多张表格(合并策略)。

复杂转换

  • 行转列/列转行pd.melt()pd.pivot()实现行列转换(转换方法)。
  • 自定义函数df.apply(lambda x: x*2)应用函数到每列(apply使用)。

🔍 Pandas数据选择与运算

数据筛选

  • 按条件筛选df[df["列A"] > 10]选择列A大于10的行。
  • 索引与切片df.loc[]按标签选择,df.iloc[]按位置选择(筛选技巧)。

统计与聚合

  • 分组统计df.groupby("列名").mean()计算分组平均值(分组详解)。
  • 聚合运算df.agg(["sum", "max"])一次性计算多个统计量(聚合方法)。

📈 Pandas进阶功能

数据可视化

整合Matplotlib绘制图表:

  1. import matplotlib.pyplot as plt
  2. df.plot(kind="line")
  3. plt.xlabel("X轴") # [Matplotlib配置](https://bookchips.com/chip/6850eb130b9569655f1202c3)

性能优化

  • 向量化操作:避免循环,优先使用内置函数(如df["列"] * 2)。
  • 高效合并pd.merge()替代逐行拼接(合并优化)。

通过本教程,您将掌握Pandas的核心操作,快速完成从数据清洗到分析的全流程。更多细节可参考链接中的扩展内容!

Pandas基础概念:Pandas是Python的数据分析库,核心数据结构为Series和DataFrame。参考教程
安装与环境配置:推荐使用Anaconda安装Pandas,集成Jupyter Notebook便捷开发。参考指南
Series数据结构:一维标签数组,可通过pd.Series(data)创建,支持整数、字符串等索引。示例
DataFrame创建:二维表格结构,常用pd.DataFrame(data)或字典生成,列名可自定义。创建方法
读取CSV文件pd.read_csv('file.csv')快速加载数据,支持编码、分隔符等参数。详细用法
导入Excel数据:使用pd.read_excel('file.xlsx')导入,需指定表名或索引。操作指南
处理空DataFrame:用df = pd.DataFrame()创建空表格,后续动态添加行列。技巧
查看数据类型df.dtypes显示每列类型,如int64、datetime64等。数据属性
重命名列名:直接赋值df.columns = ['新列名']df.rename(columns={'旧列名':'新列名'})改名方法
删除列或行df.drop(columns=['列名'])df.drop(index=[0,1])删除指定列/行。操作详解

新增列数据df['新列'] = 值直接添加列,或基于现有列计算。实例参考
条件筛选数据df[df['列名'] > 10]选取满足条件的行,支持多条件组合。筛选技巧
随机抽样数据df.sample(n=3)随机选取指定行数,适用于数据探索。随机方法
数据排序df.sort_values(by='列名', ascending=False)按某列降序排序。排序教程
数据去重df.drop_duplicates(subset=['列名'])删除重复值,保留唯一记录。去重策略
处理缺失值df.dropna()删除含空值的行,或用df.fillna(0)填充默认值。处理方案
数据转换函数df['列'].apply(func)对整列应用自定义函数,实现复杂逻辑。函数应用
拆分列表字段df.explode('列名')将列表类型字段拆分为多行,展开数据。拆解方法
合并多列数据df['合并列'] = df['列1'].astype(str) + df['列2']实现列拼接。合并技巧
设置索引列df.set_index('列名')将某列设为索引,便于时间序列处理。索引管理

数据分组聚合df.groupby('列名').sum()按列分组并计算总和,支持多种统计方法。分组教程
多表合并pd.concat([df1, df2])纵向堆叠数据,或df1.merge(df2)横向关联。合并策略
数据透视表pd.pivot_table(df, values='数值列', index='分组列')生成汇总视图。透视方法
行列转换pd.melt(df)将宽表转换为长表,适合可视化分析。转换指南
数据类型转换df['列'].astype('int')强制转换列类型,处理数值计算错误。类型调整
字符串处理df['列'].str.replace('旧值','新值')替换文本内容,支持正则表达式。字符串操作
时间格式转换pd.to_datetime(df['日期列'])将字符串转为时间类型,便于时间序列分析。时间处理
描述性统计df.describe()快速查看数值列的均值、分位数、标准差等。统计摘要
导出为CSVdf.to_csv('file.csv', index=False)保存结果,避免额外索引列。导出指南
导出到Exceldf.to_excel('file.xlsx', sheet_name='Sheet1')指定表名保存数据。Excel导出

链式操作优化:使用df.query('条件').groupby().agg()组合多个步骤,提升代码可读性。方法参考
内存优化技巧df.memory_usage()查看内存占用,降低数值类型节省空间。内存管理
定位最大/最小值df.nlargest(5, '列名')df.nsmallest(5, '列名')快速查找极值。极值查询
跨文件合并数据pd.read_sql('SELECT * FROM table', con)从数据库加载数据。SQL集成
JSON数据解析pd.read_json('data.json')读取JSON文件,自动转换为表格结构。JSON处理
应用自定义函数:结合lambda函数,如df.apply(lambda x: x*2)快速处理数据。高阶应用
数据切片选择df.loc[行标签, 列标签]按名称选择,df.iloc[行索引, 列索引]按位置选择。索引选择
数据追加写入df.to_csv('file.csv', mode='a')以追加模式写入,避免覆盖原文件。文件追加
异常值处理:结合标准差或分位数过滤异常数据,如df[(df['列'] > lower) & (df['列'] < upper)]数据清洗

跨平台数据交换:使用df.to_clipboard()复制数据到剪贴板,方便与其他软件交互。剪贴板操作
HTML表格抓取pd.read_html(url)直接解析网页中的表格数据,适用于数据采集。网页抓取
数据持久化存储df.to_pickle('file.pkl')保存为二进制文件,读写速度更快。存储优化
代码性能优化:避免循环操作,优先使用向量化计算或apply()提升效率。性能提升
与Matplotlib集成df.plot(x='列1', y='列2')快速生成折线图、柱状图等。可视化教程
数据集概览df.info()显示行列数、数据类型及内存使用情况,快速诊断数据。概览方法
处理嵌套JSON:结合json_normalize()展开多层嵌套结构,便于分析复杂数据。嵌套处理
动态更新数据:利用inplace=True参数直接在原数据上修改,减少内存占用。原地操作
多进程加速:结合swifter库加速apply()函数,提升大数据处理速度。扩展技巧
实战案例演练:通过完整数据分析项目,巩固文件读取、清洗、分析和可视化全流程。综合提升


以上教程覆盖Pandas核心功能,结合链接中的具体示例可快速掌握各场景应用技巧!

Pandas安装与配置

Anaconda环境安装

通过Anaconda管理Python环境可快速安装pandas库,支持跨平台运行。详细步骤

Jupyter Notebook交互

使用Jupyter Notebook进行数据探索时,可实时查看DataFrame内容。配置方法


Pandas核心数据结构

Series类型

pd.Series()创建一维带标签数组,支持向量化运算。创建示例

DataFrame类型

二维表格结构pd.DataFrame()支持行列索引,可存储混合数据类型。初始化方法


Pandas数据导入与导出

读取结构化数据

Pandas导出多维数据

支持导出为CSV/Excel/JSON等格式,如df.to_csv()/其他格式


Pandas数据预处理

类型转换

  • astype('float64')强制转换列类型
  • df.dtypes查看数据类型/技巧

缺失值处理

  • df.fillna(0)填充空值
  • df.dropna()删除含空行/进阶方法

Pandas数据操作技巧

行列级操作

数据选择

  • df.loc[]基于标签选择
  • df.iloc[]基于位置索引/高级筛选

Pandas数据分析进阶

聚合计算

  • df.groupby('列名').mean()分组统计
  • df.agg(['sum','max'])多维度聚合/完整指南

数据透视

  • pd.pivot_table()创建透视表
  • pd.melt()宽表转长表/转换案例

提示:更多高级方法如时间序列处理、性能优化等,参考数据分析提升专题

  1. # Pandas教程:实用技巧与示例
  2. ## 安装与环境配置
  3. ### Anaconda与Jupyter Notebook
  4. 推荐使用**[Anaconda安装Pandas](https://bookchips.com/chip/6850eb130b9569655f1202bf)**快速配置环境,结合**[Jupyter Notebook](https://bookchips.com/chip/6850eb130b9569655f1202c0)**交互式编程提升效率。
  5. ---
  6. ## 核心数据结构
  7. ### Series:一维数据容器
  8. ```python
  9. import pandas as pd
  10. s = pd.Series([3, 5, 7], name="示例列")

DataFrame:二维表格型数据

通过字典创建DataFrame:

  1. data = {"Name": ["Alice", "Bob"], "Age": [25, 30]}
  2. df = pd.DataFrame(data)

创建DataFrame的5种方法


Pandas数据导入与导出

读取数据

  1. # 从CSV读取
  2. df = pd.read_csv("data.csv", encoding='utf-8')
  3. # 从Excel读取
  4. df = pd.read_excel("data.xlsx")

支持格式包括:CSVJSONSQL

导出数据

  1. df.to_csv("output.csv", index=False)
  2. df.to_excel("output.xlsx")

更多输出格式:HTML数据库


Pandas数据清洗与转换

空值处理

  1. df.dropna() # 删除空值行
  2. df.fillna(0) # 空值填充为0

类型转换

  1. df["列名"] = df["列名"].astype("int64")

数据类型详解

数据变形

  1. # 字典列转多列
  2. df = pd.json_normalize(df["dict_column"])
  3. # 列表列拆分行
  4. df = df.explode("list_column")

explode方法应用


Pandas数据筛选与计算

条件过滤

  1. filtered = df[df["Age"] > 25]

聚合计算

  1. df.groupby("City")["Sales"].sum()

快速统计

  1. print(df.describe()) # 数值型字段概览

Pandas高级操作

数据合并

  1. pd.concat([df1, df2]) # 纵向堆叠
  2. pd.merge(df1, df2, on="key") # 横向连接

合并操作专题

可视化集成

  1. df.plot(kind="bar", x="Category")

需配合Matplotlib配置使用


Pandas扩展学习

(注:本文示例基于Pandas 1.3+版本,教程完整代码集可参考站内详细版教程