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