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点持续更新!!!

相关推荐
懒惰蜗牛3 天前
Day10:Python实现Excel自动汇总
python·numpy·pandas·pip·1024程序员节·python读写excel
CodeCraft Studio4 天前
国产化Excel开发组件Spire.XLS教程:在Python中将Pandas DataFrame导出到Excel的详细教程
python·excel·pandas
sunbyte5 天前
从零掌握 Pandas:数据分析的黄金钥匙|01:认识Pandas
数据挖掘·数据分析·pandas
是梦终空6 天前
计算机毕业设计240—基于python+爬虫+html的微博舆情数据可视化系统(源代码+数据库)
爬虫·python·pandas·课程设计·毕业论文·计算机毕业设计·微博舆情可视化
万粉变现经纪人8 天前
如何解决 pip install -r requirements.txt 私有索引未设为 trusted-host 导致拒绝 问题
开发语言·python·scrapy·flask·beautifulsoup·pandas·pip
万粉变现经纪人9 天前
如何解决 pip install -r requirements.txt 私有仓库认证失败 401 Unauthorized 问题
开发语言·python·scrapy·flask·beautifulsoup·pandas·pip
m***记10 天前
Python 数据分析入门:Pandas vs NumPy 全方位对比
python·数据分析·pandas
小钱c710 天前
Python使用 pandas操作Excel文件并新增列数据
python·excel·pandas
虎头金猫12 天前
我的远程开发革命:从环境配置噩梦到一键共享的蜕变
网络·python·网络协议·tcp/ip·beautifulsoup·负载均衡·pandas