pandas简介

Pandas 是 Python 开源数据分析库,核心数据结构为 Series(一维)和 DataFrame(二维),专注结构化数据的导入、清洗、分析与导出,是数据科学领域的核心工具。

一、核心数据结构

Pandas 的核心能力依赖两种基础数据结构,覆盖一维到二维数据场景。

1. Series(一维数据结构)

  • 定义:由数据值关联索引组成,类似带标签的列表。
  • 结构:索引(index)+ 数据值(values),索引可自定义(默认从 0 开始)。
  • 常用属性:
    • index:查看 / 设置索引
    • values:获取底层数据数组
    • dtype:数据类型
    • shape:数据长度(如 (4,) 表示 4 个元素)

2. DataFrame(二维数据结构)

  • 定义:类似 Excel 表格 / 数据库表,由多个 Series 按列组合而成,同时拥有行索引和列索引。
  • 结构:行索引(index)+ 列索引(columns)+ 数据矩阵(values)。
  • 常用属性:
    • columns:查看 / 修改列名
    • index:查看 / 修改行索引
    • info():查看数据类型、非空值数量
    • describe():获取数值型数据的统计摘要(均值、标准差等)
    • shape:数据维度(行数,列数)

二、核心功能(含参数表格)

Pandas 的功能覆盖数据处理全流程,以下是高频核心功能及关键参数。

1. 数据读取与导出

支持多种数据源格式,核心函数及参数如下:

|-----------------|--------------|--------------------|------------------|
| 函数 | 功能 | 常用参数 | 参数作用 |
| pd.read_csv() | 读取 CSV 文件 | filepath_or_buffer | 文件路径 / URL |
| | | sep | 字段分隔符(默认逗号) |
| | | header | 指定表头行(默认第 0 行) |
| | | na_values | 指定视为缺失值的内容 |
| | | usecols | 只读取指定列 |
| pd.read_excel() | 读取 Excel 文件 | sheet_name | 指定工作表(名称 / 索引) |
| df.to_csv() | 导出为 CSV 文件 | index | 是否导出行索引(默认 True) |
| df.to_excel() | 导出为 Excel 文件 | sheet_name | 自定义工作表名称 |

2. 数据清洗

  • 缺失值处理:
    • df.dropna():删除含缺失值的行 / 列(参数axis=0行 /axis=1列)
    • df.fillna(value):用指定值填充缺失值(如fillna(0)用 0 填充)
  • 重复值处理:
    • df.duplicated():判断重复行(返回布尔值)
    • df.drop_duplicates():删除重复行(参数keep="first"保留首行)
  • 数据类型转换:
    • df.astype(dtype):批量转换类型(如df["年龄"].astype(int)
    • pd.to_numeric():将字符串转为数值型(参数errors="coerce"无法转换设为 NaN)

3. 数据操作与分析

  • 筛选数据:
    • df.loc[行索引, 列名]:按标签筛选(如df.loc[0, "Apples"]取第 0 行 Apples 列)
    • df.iloc[行索引, 列索引]:按位置筛选(如df.iloc[0:2, 0]取前 2 行第 1 列)
  • 合并数据:
    • pd.concat([df1, df2]):上下拼接(参数axis=1左右拼接)
    • pd.merge(df1, df2, on="键列"):按共同列关联(类似 SQL JOIN)
  • 分组统计:
    • df.groupby("列名").agg(统计函数):按列分组计算(如df.groupby("类别")["销量"].sum()
  • 透视表:
    • pd.pivot_table(df, values="值列", index="行索引列", columns="列索引列", aggfunc="mean"):生成交叉统计表

4. 时间序列分析

  • 日期解析:pd.to_datetime(df["日期列"])将字符串转为日期类型
  • 重采样:df.resample("M").sum()按月份汇总("D" 日 /"W" 周 /"Q" 季度)
  • 时区转换:df.tz_localize("UTC").tz_convert("Asia/Shanghai")

5. 数据可视化

  • 与 Matplotlib 集成,直接调用 DataFrame/Series 的 plot 方法:
    • df.plot.line():折线图
    • df.plot.bar():柱状图
    • df.plot.scatter(x="x列", y="y列"):散点图

三、典型应用场景

  • 金融领域:股票数据分析、财务报表处理、交易记录统计
  • 科学研究:实验数据整理、观测数据统计(天文、生物、地理等)
  • 企业业务:销售数据复盘、客户行为分析、运营指标监控
  • 社交媒体:用户评论情感分析、话题趋势追踪、用户画像构建
  • 医疗保健:患者数据管理、临床试验数据统计、疾病趋势分析
  • 教育 / 营销:学生成绩分析、广告投放效果优化、市场调研数据处理

四、实战实例(代码 + 解释)

以下代码演示核心数据结构创建与基础操作:

python 复制代码
# 1. 导入Pandas库(常规别名pd)
import pandas as pd

# 2. 创建Series(一维数据)
series_apples = pd.Series([1, 3, 7, 4], index=["周一", "周二", "周三", "周四"])  # 自定义索引
series_bananas = pd.Series([2, 6, 3, 5], index=["周一", "周二", "周三", "周四"])

print("苹果销量Series:")
print(series_apples)
# 输出:
# 周一    1
# 周二    3
# 周三    7
# 周四    4
# dtype: int64

# 3. 由Series创建DataFrame(二维数据)
df = pd.DataFrame({
    "苹果": series_apples,
    "香蕉": series_bananas
})

print("\n水果销量DataFrame:")
print(df)
# 输出:
#      苹果  香蕉
# 周一    1    2
# 周二    3    6
# 周三    7    3
# 周四    4    5

# 4. 基础操作:筛选+统计
# 筛选周三的销量
wed_sales = df.loc["周三"]
print("\n周三销量:")
print(wed_sales)

# 统计苹果总销量
total_apples = df["苹果"].sum()
print(f"\n苹果总销量:{total_apples}")

# 5. 导出为CSV文件
df.to_csv("水果销量数据.csv", index=True)  # 保留行索引(日期)

感谢大家的阅读 制作不易 麻烦各位点点关注和收藏 每天8点持续更新!!!

相关推荐
laplace01238 小时前
LangChain 1.0 入门实战(Part 1)详细笔记
笔记·python·langchain·numpy·pandas
Font Tian12 小时前
Pandas 3.0 全解:从默认字符串类型到 Copy-on-Write 的一场“内存模型重构”
python·重构·数据分析·pandas
liu****13 小时前
04_Pandas数据分析入门
python·jupyter·数据挖掘·数据分析·numpy·pandas·python常用工具
liu****1 天前
02_Pandas_数据结构
数据结构·python·pandas·python基础
渡我白衣2 天前
计算机组成原理(11):加法器
python·机器学习·numpy·pandas·matplotlib·计组·数电
falldeep2 天前
Pandas入门指南
数据结构·算法·leetcode·pandas
墨上烟雨2 天前
Pandas 数据清洗详解
pandas
万粉变现经纪人2 天前
如何解决 pip install 代理报错 SOCKS5 握手失败 ReadTimeoutError 问题
java·python·pycharm·beautifulsoup·bug·pandas·pip
晨晨渝奇3 天前
pandas 中将两个 DataFrame 分别导出到同一个 Excel 同一个工作表(sheet1)的 A1 单元格和 D1 单元格
excel·pandas
jarreyer4 天前
python,numpy,pandas和matplotlib版本对应关系
python·numpy·pandas