2025年python的pandas讲解

目录

1.简介

重要函数概览

2.入门

3.序列(Series)

4.数据帧(DataFrame)

5.读取csv文件

6.读取json

7.数据分析

主要数据分析功能

8.数据清洗

​编辑9.绘图


1.简介

pandas 库简介

pandas 是一个基于 Python 的开源数据处理和分析库,提供了高效、灵活的数据结构(如 DataFrameSeries),专门用于处理结构化数据(如表格数据、时间序列等)。它是数据科学、机器学习和统计分析中的核心工具之一。

核心功能

  • 数据读取与写入:支持从 CSV、Excel、JSON、SQL 数据库等多种格式加载数据,并导出为多种格式。
  • 数据清洗:处理缺失值、重复值、异常值,支持数据类型的转换与规范化。
  • 数据操作:支持筛选、排序、聚合、合并、分组、透视等操作。
  • 时间序列处理:提供强大的日期和时间数据处理功能,如重采样、时区转换等。
  • 高性能计算:底层基于 NumPy 和 C 优化,支持大规模数据的高效处理。

适用场景

重要函数概览

类别函数功能描述
数据读取/存储read_csv()从 CSV 文件读取数据
read_excel()从 Excel 文件读取数据
to_csv()将数据保存为 CSV 文件
数据查看/检查head()查看数据前几行
tail()查看数据后几行
info()显示数据摘要(列、数据类型等)
describe()生成数值型数据的统计摘要
数据选择/过滤loc[]基于标签选择数据
iloc[]基于整数位置选择数据
query()使用表达式筛选数据
数据处理dropna()删除缺失值
fillna()填充缺失值
groupby()数据分组聚合
merge()合并多个 DataFrame
sort_values()按列值排序
数据转换apply()对数据应用自定义函数
pivot_table()创建透视表
melt()将宽格式数据转换为长格式
时间序列处理to_datetime()将字符串转换为时间格式
resample()时间序列重采样

pandas 广泛应用于金融、统计、机器学习等领域,是 Python 数据分析生态系统的核心工具之一。pandas 通常与 NumPy、Matplotlib、Scikit-learn 等库配合使用,构成 Python 数据科学生态的核心工具链。

2.入门

已经安装了 Python 和 PIP,安装Pandas:C:\Users\Your Name>pip install pandas

3.序列(Series)

pandas序列简介

  • 数据清洗与预处理
  • 探索性数据分析(EDA)
  • 机器学习特征工程
  • 金融、社会科学等领域的时间序列分析

pandas中的Series是一种一维标记数组,能够存储任何数据类型(整数、字符串、浮点数、Python对象等)。每个元素都有对应的索引标签,默认情况下为从0开始的整数索引,但也可以自定义索引。

核心特性

索引与数据对齐Series会自动对齐不同索引的数据,便于后续操作。 数据类型多样性:支持多种数据类型,包括数值、字符串、布尔值等。 向量化操作:支持基于标签的数学运算,无需显式循环。

常用函数

数据操作类

统计计算类

数据清洗类

索引与选择类

转换类

Series是pandas的基础数据结构之一,通常与DataFrame结合使用,适合处理表格数据中的单列或单行操作。

4.数据帧(DataFrame)

  • head() / tail():查看序列前/后几行数据。
  • unique():返回序列中的唯一值数组。
  • value_counts():统计每个唯一值的出现次数。
  • sort_values():按值排序序列。
  • sort_index():按索引排序序列。
  • mean() / median():计算均值或中位数。
  • sum() / prod():求和或乘积。
  • isna() / notna():检测缺失值(返回布尔序列)。
  • fillna():填充缺失值。
  • dropna():删除包含缺失值的项。
  • loc[]:通过标签索引访问数据。
  • iloc[]:通过整数位置索引访问数据。
  • get():安全获取索引对应的值(避免KeyError)。
  • astype():强制转换数据类型。
  • to_list() / to_dict():转换为Python列表或字典。
  • apply():对每个元素应用自定义函数。
  • std() / var():计算标准差或方差。
  • min() / max():获取最小值或最大值。

pandas DataFrame 简介

DataFrame 是 pandas 库中的核心数据结构,用于处理结构化数据。它类似于电子表格或 SQL 表,由行和列组成,列可以是不同的数据类型(如整数、字符串、浮点数等)。DataFrame 提供了高效的数据操作和分析功能,是数据科学和机器学习中常用的工具。

DataFrame 的核心特点

二维表格结构:DataFrame 是一个带有行索引和列名的二维表格,可以方便地存储和操作数据。 灵活的数据类型:每一列可以包含不同类型的数据(数值、字符串、布尔值等)。 强大的数据操作:支持数据筛选、合并、分组、聚合、排序等高级操作。 与外部数据集成:可以轻松读取和写入 CSV、Excel、SQL 数据库等多种数据源。

常用 DataFrame 函数

DataFrame 的设计使其成为处理结构化数据的理想选择,适用于数据分析、数据清洗和机器学习等任务。

5.读取csv文件

  • 数据查看head() 查看前几行,tail() 查看后几行,info() 显示数据概要。
  • 数据选择loc[] 按标签选择数据,iloc[] 按位置选择数据。
  • 数据清洗dropna() 删除缺失值,fillna() 填充缺失值,drop() 删除行或列。
  • 数据计算mean() 计算平均值,sum() 求和,groupby() 分组计算。
  • 数据排序sort_values() 按值排序,sort_index() 按索引排序。
  • 数据合并merge() 合并多个 DataFrame,concat() 连接多个 DataFrame。

pandas读取CSV文件的主要函数

pandas.read_csv() 是用于读取CSV(逗号分隔值)文件的核心函数,支持多种参数以适应不同格式的数据文件。

函数的关键参数及含义

filepath_or_buffer
指定文件路径或URL,可以是本地文件系统路径或网络地址,支持字符串或文件对象。

sep/delimiter
定义字段分隔符,默认为逗号(,)。可自定义为制表符(\t)、分号(;)等其他字符。

header
指定表头行位置,默认为0(第一行作为列名)。设为None时表示无表头,自动生成数字列名。

index_col
将某一列设为行索引,支持列名或列位置编号。多级索引可传入列名列表。

names
自定义列名列表,覆盖文件中的原有列名。需与数据列数一致。

dtype
强制指定列的数据类型,传入字典格式(如{'列名': 'float64'})可优化内存或避免自动推断错误。

na_values
指定哪些字符串应被识别为缺失值(NaN),支持单个字符串或列表(如['NA', 'NULL'])。

skiprows
跳过文件开头指定行数或行号列表(如跳过注释行)。

nrows
仅读取前N行数据,适用于快速检查大型文件。

encoding
指定文件编码格式(如utf-8gbk),解决中文等非ASCII字符乱码问题。

parse_dates
将指定列解析为日期类型,支持列名列表或True(自动尝试转换日期列)。

其他实用功能

6.读取json

  • 日期解析:通过parse_dates参数可合并多列为单个日期列(如年、月、日分列时)。
  • 分块读取chunksize参数支持迭代读取大型文件,减少内存占用。
  • 压缩文件:自动识别.gz.zip等压缩格式,无需提前解压。

JSON 的含义

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用文本形式存储和传输数据。其结构由键值对组成,兼容多种编程语言,常用于Web应用、API数据传输和配置文件存储。JSON支持嵌套结构,可表示复杂数据关系。

Pandas 中的 JSON 相关函数

read_json():将 JSON 格式的数据转换为 Pandas 的 DataFrame 对象。支持从文件路径、URL 或 JSON 字符串读取数据,可自动解析嵌套结构。参数 orient 用于指定 JSON 数据的排列方式(如 'records''columns')。

to_json():将 DataFrame 或 Series 转换为 JSON 格式的字符串或文件。通过 orient 参数控制输出结构(如 'split''index'),date_format 参数可调整时间序列的格式化方式。

json_normalize():用于展平嵌套的 JSON 数据,将其转换为扁平的 DataFrame。适用于处理包含多层嵌套的复杂 JSON 结构,如 API 返回的嵌套响应。参数 record_path 指定展开的路径,meta 定义保留的元字段。

JSON 结构的常见形式

7.数据分析

  • 键值对集合:类似 Python 字典,如 {"name": "Alice", "age": 25}
  • 列表结构:表示有序数据,如 [1, 2, 3]
  • 混合嵌套:键值对中嵌套列表或其他字典,适合表示层次化数据。

pandas 数据分析简介

pandas 是一个强大的 Python 数据分析库,提供了高效的数据结构和工具,用于处理和分析结构化数据。其核心数据结构是 DataFrame(二维表格数据)和 Series(一维数据),支持多种数据操作和分析功能。

主要数据分析功能

数据读取与查看

读取数据:支持从 CSV、Excel、SQL、JSON 等格式加载数据,常用函数如 read_csv()read_excel()查看数据head() 显示前几行数据,tail() 显示后几行数据,info() 提供数据概览(如列名、数据类型、非空值数量)。

数据清洗

数据筛选与排序

数据聚合与分组

描述性统计

数据合并与重塑

时间序列分析

常用分析场景

pandas 的函数设计注重简洁性和表达力,能够高效处理大规模数据,是数据科学领域的核心工具之一。

8.数据清洗

  • 处理缺失值isnull() 检测缺失值,dropna() 删除缺失值,fillna() 填充缺失值。
  • 去重drop_duplicates() 删除重复行。
  • 数据类型转换astype() 修改列的数据类型。
  • 条件筛选:通过布尔索引选择满足条件的数据。
  • 列选择:通过列名或标签选择特定列。
  • 排序sort_values() 按某列的值排序,sort_index() 按索引排序。
  • 分组统计groupby() 对数据进行分组,结合聚合函数(如 sum()mean())计算统计量。
  • 透视表pivot_table() 创建类似 Excel 的透视表,支持多维数据分析。
  • 汇总统计describe() 提供数值列的统计摘要(如均值、标准差、分位数)。
  • 相关性分析corr() 计算列之间的相关系数。
  • 合并数据merge() 类似 SQL 的 JOIN 操作,concat() 沿轴拼接多个 DataFrame。
  • 重塑数据melt() 将宽格式数据转换为长格式,pivot() 将长格式数据转换为宽格式。
  • 时间数据处理:支持日期解析、时间偏移、滚动窗口统计等。
  • 重采样resample() 对时间序列数据进行降采样或升采样。
  • 探索性数据分析(EDA):通过统计和可视化快速理解数据分布和关系。
  • 数据预处理:清理和转换数据,为建模或分析做准备。
  • 业务分析:计算关键指标(如转化率、留存率),生成报表。

pandas数据清洗概述

数据清洗是数据分析的关键步骤,旨在处理数据集中的错误、缺失、重复或不一致问题,确保数据质量。pandas作为Python的核心数据分析库,提供了丰富的函数和方法支持高效清洗。

常用数据清洗场景

缺失值处理

识别缺失值:isnull()isna()检测缺失值,返回布尔值。 填充缺失值:fillna()用指定值或插值方法填充。 删除缺失值:dropna()移除包含缺失值的行或列。

重复数据处理

数据类型转换

异常值处理

字符串处理

数据规范化

核心函数功能说明

数据清洗需结合业务场景选择合适方法,通常需要多次迭代才能达到理想效果。

9.绘图

  • 检测重复行:duplicated()标记重复行。
  • 删除重复行:drop_duplicates()移除重复记录,可基于部分或全部列。
  • 类型转换:astype()将列转换为指定数据类型。
  • 日期转换:to_datetime()将字符串转为日期格式。
  • 描述统计:describe()快速识别数值异常。
  • 条件筛选:通过布尔索引过滤不合理值。
  • 大小写转换:str.lower()/str.upper()统一文本格式。
  • 标准化/归一化:通过数学变换使数据符合特定范围。
  • 分箱处理:cut()/qcut()将连续值离散化。
  • isnull():生成缺失值掩码,便于定位问题数据。
  • fillna():支持前向填充、均值填充等多种缺失值填补策略。
  • drop_duplicates():通过keep参数控制保留首个或末个重复项。
  • replace():支持值映射或正则表达式替换。
  • apply():支持自定义函数进行复杂清洗操作。
  • merge()/join():处理多表数据不一致问题。
  • 空白处理:str.strip()清除首尾空格。
  • 文本替换:str.replace()替换特定字符或模式。

pandas绘图概述

pandas内置的绘图功能基于Matplotlib,提供了快速可视化数据的能力。通过DataFrame和Series对象直接调用绘图方法,可以简化常见图表(如折线图、柱状图、散点图等)的生成流程,适合探索性数据分析(EDA)。

主要绘图函数及含义

DataFrame.plot() :功能:通用绘图入口,通过参数指定图表类型(如折线图、柱状图等)。 关键参数

  • kind:图表类型(如linebarhist等)。
  • x/y:指定横纵轴数据列。
  • title:图表标题。
  • grid:是否显示网格线。

DataFrame.plot.line()

DataFrame.plot.bar() / DataFrame.plot.barh()

DataFrame.plot.hist()

DataFrame.plot.box()

DataFrame.plot.scatter()

DataFrame.plot.pie()

其他功能

pandas绘图方法适合快速生成基础图表,复杂定制仍需结合Matplotlib或Seaborn库。

  • 用途:绘制折线图,适合展示数据随时间或有序变量的趋势变化。
  • 适用场景:时间序列数据、连续变量对比。
  • 用途:垂直/水平柱状图,用于分类数据对比。
  • 关键参数
    • stacked:是否堆叠显示不同分类。
  • 用途:直方图,展示数值数据的分布情况。
  • 关键参数
    • bins:控制分箱数量,影响分布细节。
  • 用途:箱线图,显示数据的中位数、四分位数及异常值。
  • 适用场景:分析数据离散程度和离群值。
  • 用途:散点图,展示两个数值变量的相关性。
  • 用途:饼图,显示各类别占比关系。
  • 注意点:适用于少量类别,避免过多分割导致可读性下降。
  • 子图绘制:通过subplots=True参数可拆分多列数据到不同子图。
  • 样式定制:支持Matplotlib的样式参数(如颜色、线型、标签等),需通过plt接口进一步调整。
  • 关键参数
    • x/y:指定横纵轴列名。
    • c:基于某列数值的颜色映射。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值