news 2026/5/2 18:19:25

Pandas实用文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Pandas实用文档

Pandas是一个基于 Python 的数据处理与分析库,主要用于处理结构化数据,例如 Excel 表格、CSV 文件、JSON数据等。

该库提供了高效且易于使用的数据结构,如DataFrameSeries,能够支持数据的读取、清洗、整理、统计与存储等操作。

在深度学习任务中,Pandas 通常用于训练前的数据预处理以及训练过程中的实验记录管理,例如保存关键数据为 CSV 文件、记录并分析模型训练日志,从而提升实验的可管理性与可复现性。

官方文档参考https://pandas.pydata.org/docs/reference/index.html

一、核心数据结构

1.Series

importpandasaspd s=pd.Series([0.1,0.3,0.2],index=["train","val","test"])

Series类似一维带索引的数组。可以类似字典一样进行索引,同时对标签的要求只有数量一致,标签类型可以是字符串或者数字等其它。

在深度学习中,常用于记录某个指标随 epoch 变化,存储 loss / accuracy 的一维日志。

2.DataFrame

df=pd.DataFrame({"epoch":[1,2,3],"loss":[0.8,0.5,0.3],"acc":[0.6,0.75,0.85]})

DataFrame是最常用的数据结构,一种二维表格。严格要求每一列的长度必须一致,如下所示的epoch列、loss列、acc列长度均一致。

如果你print(df),看到的是:

epoch loss acc010.80.60120.50.75230.30.85

二、数据处理

3. 读取数据

df=pd.read_csv("train.csv")df=pd.read_excel("data.xlsx")df=pd.read_json("log.json")

读取结果都是一个pandas.DataFrame对象。

4. 保存数据

df.to_csv("result.csv",index=False)

将一个pandas.DataFrame对象保存为名为“result.csv”的CSV文件,index=False表明不保存 Pandas 自动生成的行索引(0,1,2,…)。

训练日志一般不需要保存 index,防止干扰后续读取。

5、查看数据

(1)部分查看
df.head()# 输出df前五行df.tail()# 输出df后五行
(2)基本信息查看
df.columns# 输出行信息

输出示例:

Index(['epoch', 'loss', 'acc'], dtype='object')

df.shape# 输出df形状,譬如(3,3)

df.info()# 输出df基本信息

输出示例:

<class'pandas.core.frame.DataFrame'>RangeIndex:5entries,0to4Data columns(total4columns):# Column Non-Null Count Dtype--- ------ -------------- -----0epoch5non-null int641train_loss5non-null float642val_loss5non-null float643val_acc5non-null float64

从基本信息可以查看行列数,数据类型,是否有缺失值(Non-Null Count)。

(3)数字特征查看
df.describe()# 输出df的一些数字特征值

输出示例:

epoch train_loss val_loss val_acc count 5.000000 5.000000 5.000000 5.000000 mean 3.000000 0.526000 0.658000 0.698000 std 1.581139 0.259000 0.257000 0.101000 min 1.000000 0.300000 0.460000 0.520000 25% 2.000000 0.350000 0.480000 0.680000 50% 3.000000 0.410000 0.550000 0.740000 75% 4.000000 0.620000 0.700000 0.770000 max 5.000000 0.950000 1.100000 0.780000

可以查看一些统计学量。

6、索引、筛选数据

df["loss"]# 访问单列df[["epoch","loss"]]# 访问多列# 如果未知数据,不知列名df.iloc[0]# 第 1 行df.iloc[:,1]# 第 2 列# 如果要指定取值的话df.loc[0,"loss"]# 取第0行的train_loss值# 对行条件筛选df.loc[df["epoch"]>5]#可能输出:# epoch train_loss val_loss val_acc# 5 6 0.42 0.58 0.75# 6 7 0.40 0.57 0.76df[df["loss"]<0.5]df[(df["acc"]>0.8)&(df["epoch"]>10)]df.loc[df["epoch"]>5,["epoch","val_loss","val_acc"]]#loc命令的强大之处,含义是epoch > 5 的行;只要这几列。(指定列)

7、清洗数据

(1)缺失值处理
df.isna().sum()

输出示例:

epoch 0 train_loss 1 val_loss 1 val_acc 1 dtype: int64

查看每一列有多少缺失值。


df.dropna()# 直接删除掉含缺失值的行df.fillna(0)# 用固定值0填充缺失值,下同理df.fillna(df.mean())
(2)类型转换
df["label"]=df["label"].astype(int)df["time"]=pd.to_datetime(df["time"])
(3)去重
df.drop_duplicates()# 删除重复行,默认保留第一次出现的行

8、数据变换

df["log_loss"]=np.log(df["loss"])# 新增一个新列,元素为df["loss"]的对数化结果# 向量化操作,最常用
df["score"]=df.apply(lambdax:x["acc"]-x["loss"],axis=1)# 新增一个新列,元素为按行(axis=1)的计算式x["acc"] - x["loss"]# 不建议滥用,Python层for-loop性能远慢于向量化操作。复杂计算时可用。df["score"]=df["acc"]-df["loss"]# 推荐写法
label_map={"cat":0,"dog":1}# 标签处理--映射df["label_id"]=df["label"].map(label_map)# 利用字典label_map完成映射

9、数据#

importpandasaspd df=pd.DataFrame({"model":["CNN","CNN","ViT","ViT","CNN"],"epoch":[1,2,1,2,3],"acc":[0.80,0.82,0.85,0.87,0.83]})result=df.groupby("model")["acc"].mean()print(result)

输出:

model CNN0.816667ViT0.860000Name: acc, dtype: float64

df.groupby("model")["acc"].mean()把 DataFrame 按model列的取值分组,只关注acc这一列,对每个组内部的 acc 求平均值。

10、数据排序

df.sort_values("acc",ascending=False)#按 `acc` 列从大到小排序整个 DataFrame。df.nlargest(5,"acc")#直接取 `acc` 最大的前 5 行。

11、与 NumPy / PyTorch 的衔接

x=df[["f1","f2"]].values

12. Pandas → PyTorch Dataset

labels=torch.tensor(df["label"].values)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 11:21:00

终极免费开源电子书阅读器:Bookworm 完整指南

终极免费开源电子书阅读器&#xff1a;Bookworm 完整指南 【免费下载链接】bookworm A simple ebook reader for Elementary OS 项目地址: https://gitcode.com/gh_mirrors/bo/bookworm 在数字阅读时代&#xff0c;找到一款真正好用且支持多格式的电子书阅读器至关重要。…

作者头像 李华
网站建设 2026/5/1 17:36:23

揭秘Kimi-VL多模态AI:智能思考技术全面解析

揭秘Kimi-VL多模态AI&#xff1a;智能思考技术全面解析 【免费下载链接】Kimi-VL-A3B-Thinking-2506 这是 Kimi-VL-A3B-Thinking 的更新版本&#xff0c;具备以下增强能力&#xff1a; 思考更智能&#xff0c;消耗更少 Token&#xff1a;2506 版本在多模态推理基准测试中达到更…

作者头像 李华
网站建设 2026/5/1 7:18:31

如何快速搭建个人云存储网盘:ZPan完整使用指南

ZPan是一个基于云存储的自托管网盘系统&#xff0c;它让你能够轻松搭建私人或企业级云盘&#xff0c;摆脱传统服务器带宽限制。这个开源项目采用Go语言开发&#xff0c;性能高效稳定&#xff0c;支持多种云存储服务商&#xff0c;是构建私有云存储的理想选择。 【免费下载链接】…

作者头像 李华
网站建设 2026/4/21 6:42:05

如何写出优秀的单元测试?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快写出优秀的单元测试需要考虑以下几个方面&#xff1a;1. 测试用例设计测试用例应该覆盖被测试代码的不同场景和边界情况&#xff0c;以尽可能发现潜在的问题。在设计…

作者头像 李华
网站建设 2026/5/1 9:11:21

LLM - 从 Prompt 到上下文工程:面向 Java 的生产级 AI Agent 设计范式

文章目录引言&#xff1a;从“会写代码”到“能托付工作”Agent 能力边界与安全前提Prompt 注入威胁的现实形态多层防注入策略&#xff1a;从模型到框架工具设计&#xff1a;从“能用”到“好用又安全”工具调用策略&#xff1a;循环而非流水线上下文工程&#xff1a;从 Prompt…

作者头像 李华
网站建设 2026/4/30 10:16:12

完结 风哥Oracle RAC+DG生产实战(4):Oracle21c RAC DataGuard搭建2+2

如何高效掌握《Oracle 21c RAC DataGuard 22架构实战指南》并生成技术文章想要快速且有效地消化这篇架构实战指南&#xff0c;并将其精髓转化为一篇属于自己的技术文章&#xff0c;可以遵循以下系统化的学习与写作路径。这不仅适用于本文&#xff0c;也是学习任何复杂技术文档的…

作者头像 李华