当前位置: 首页 > article >正文

Pandas 操作指南(一):DataFrame 的构建与表格数据组织

在数据分析与数据处理中原始数据往往并不是一开始就以规范表格的形式出现。它可能来自列表list、字典dict、CSV/Excel 文件或程序运行过程中临时生成的数据集合。若这些数据尚未被整理为结构明确的表格对象后续的数据选取、清洗、统计与可视化操作便缺乏统一基础。Pandas 的核心任务之一正是将原始数据组织为可计算、可检查、可分析的表格结构。其中最重要的数据结构是 DataFrame。本文以一张学生成绩表为贯穿示例说明如何将原始数据整理成 DataFrame并在此基础上认识其基本结构、内容查看方式以及常见检查方法。例如希望得到的成绩表如下学号姓名班级语文数学英语S001张三C01889285S002李四C01768179S003王五C02908793S004赵六C02858988S005孙七C03919590S006周八C03788480下面将围绕这张表说明如何把原始数据整理成 Pandas 中的 DataFrame。一、为什么要先学会使用表格数据在 Python 中列表、字典、元组等数据类型都可以保存数据但当数据本身具有明确的行列结构时仅用这些通用容器来组织数据往往不利于后续分析。以学生成绩数据为例这类数据通常具有如下特点• 每一行对应一个对象• 每一列对应一个字段Field• 不同对象在相同字段上具有可比较性若数据仍停留在原始列表或字典的层面则行列关系、字段含义与结构边界往往不够清晰。此时虽然数据已经被保存但尚未被整理为适合分析的表格形式。Pandas 中的数据选取、筛选、清洗、统计与合并等操作均以表格结构为基础。因此学习 Pandas 的起点不是立即进行复杂分析而是先将原始数据整理成结构清晰的 DataFrame。二、认识 DataFrame 和 SeriesPandas 中最核心的两种数据结构是• DataFrame• Series其中DataFrame 用于表示二维表格数据Series 用于表示一维带标签数据。1、DataFrameDataFrame 是 Pandas 提供的二维带标签数据结构two-dimensional labeled data structure。它既包含二维数据值又包含用于标识各行和各列的标签信息。下面先将学生成绩原始数据整理成一个 DataFrame并统一命名为 scoresimport pandas as pd data [ {学号: S001, 姓名: 张三, 班级: C01, 语文: 88, 数学: 92, 英语: 85}, {学号: S002, 姓名: 李四, 班级: C01, 语文: 76, 数学: 81, 英语: 79}, {学号: S003, 姓名: 王五, 班级: C02, 语文: 90, 数学: 87, 英语: 93}, {学号: S004, 姓名: 赵六, 班级: C02, 语文: 85, 数学: 89, 英语: 88}, {学号: S005, 姓名: 孙七, 班级: C03, 语文: 91, 数学: 95, 英语: 90}, {学号: S006, 姓名: 周八, 班级: C03, 语文: 78, 数学: 84, 英语: 80}] scores pd.DataFrame(data)print(scores)输出学号 姓名 班级 语文 数学 英语0 S001 张三 C01 88 92 851 S002 李四 C01 76 81 792 S003 王五 C02 90 87 933 S004 赵六 C02 85 89 884 S005 孙七 C03 91 95 905 S006 周八 C03 78 84 80从结构上看可将其理解为行索引学号姓名班级语文数学英语0S001张三C018892851S002李四C017681792S003王五C029087933S004赵六C028589884S005孙七C039195905S006周八C03788480在这张结构表中• 最左侧一列是行索引Index• 第一行中的“学号、姓名、班级、语文、数学、英语”是列标签Columns• 中间区域是数据值区域因此DataFrame 可以概括为由数据值、行索引和列标签共同构成的二维表格对象。2、SeriesSeries 是 Pandas 提供的一维带标签数据结构one-dimensional labeled data structure。将 DataFrame 看作整张表则其中的单列数据通常可以理解为一个 Series。例如scores[数学] 的结果通常就是一个 Series。math_scores scores[数学]print(math_scores)输出0 921 812 873 894 955 84Name: 数学, dtype: int64由此可见Series 并非单纯的一列值而是“一列值 一组标签”的组合。因此可以将二者概括为• Series 是一维的• DataFrame 是二维的• DataFrame 中的单列数据通常可视为 Series三、构建 DataFrame在 Pandas 中构建 DataFrame 最常用的方法是 pd.DataFrame()。构建一张表时通常需要明确三项内容• 数据值• 行的组织方式• 列标签的名称一般来说最常用的构建方式主要有三种由字典构建、由列表嵌套列表构建以及由字典列表构建。1、由值为列表的字典构建若原始数据已经按列组织则字典是最自然的输入形式。字典的键会成为列标签各键对应的列表会成为各列数据。示例import pandas as pd data { 学号: [S001, S002, S003, S004, S005, S006], 姓名: [张三, 李四, 王五, 赵六, 孙七, 周八], 班级: [C01, C01, C02, C02, C03, C03], 语文: [88, 76, 90, 85, 91, 78], 数学: [92, 81, 87, 89, 95, 84], 英语: [85, 79, 93, 88, 90, 80]} scores pd.DataFrame(data)print(scores)若需要显式控制列顺序也可以指定 columns 参数scores pd.DataFrame( data, columns[学号, 姓名, 班级, 语文, 数学, 英语]) print(scores)2、由列表嵌套列表构建若原始数据按行组织即每个内部列表表示一行数据则可以使用列表嵌套列表的形式。data [ [S001, 张三, C01, 88, 92, 85], [S002, 李四, C01, 76, 81, 79], [S003, 王五, C02, 90, 87, 93], [S004, 赵六, C02, 85, 89, 88], [S005, 孙七, C03, 91, 95, 90], [S006, 周八, C03, 78, 84, 80]] scores pd.DataFrame( data, columns[学号, 姓名, 班级, 语文, 数学, 英语])print(scores)当输入是二维列表时Pandas 无法自动获知每一列的字段含义因此通常应主动提供 columns 参数否则列标签会使用默认整数索引。3、由字典列表构建若原始数据是一条记录Record对应一个字典则可以直接使用字典列表构建 DataFrame。此类形式在接口数据、JSON 数据与对象集合中较为常见。这正是本文第二节 data 变量所采用的组织方式。示例同第二节的 DataFrame 构建示例。4、选择合适的构建方式构建 DataFrame 时不必刻意追求单一写法更重要的是顺着原始数据的组织方式进行选择。一般来说• 数据按“列”组织用“值为列表的字典”• 数据按“行”组织用“列表嵌套列表”• 数据按“记录”组织用“字典列表”四、表格的行、列与标签将原始数据整理成 DataFrame 之后首先需要准确理解这张表的结构。从表格语义看一张 DataFrame 至少包含三个核心层面• 行Row• 列Column• 标签Label1、行在学生成绩表中每一行对应一名学生的数据。例如第 0 行对应学号为 S001 的学生张三第 1 行对应学号为 S002 的学生李四。在表格数据中一行通常表示• 一个对象• 一条记录• 一次观察结果2、列在这张表中每一列对应一个字段Field学号姓名班级语文数学英语列通常表示对象的属性、指标或特征。后续分析通常围绕列展开例如比较数学成绩、统计英语平均分或按班级观察成绩分布。3、行索引行索引Index位于表格左侧用于标识各行。print(scores.index)输出示意RangeIndex(start0, stop6, step1)在当前示例中Pandas 自动生成了从 0 开始的默认整数索引。需要注意“行”与“行索引”并不是同一个概念前者是记录本身后者是用来标识这些记录的位置或标签。4、列标签列标签Columns位于表格上方用于标识各列的含义。print(scores.columns)输出示意Index([学号, 姓名, 班级, 语文, 数学, 英语], dtypeobject)列标签是后续数据选取、筛选、统计与绘图的重要基础。列名越明确后续操作越自然。5、学号与索引的区别在当前成绩表中“学号”具有明确业务含义能够唯一标识学生但它暂时仍作为普通列保留并不等同于行索引。索引属于 DataFrame 的标签结构而“学号”属于表中的业务字段二者可以一致也可以不同。五、查看表格内容当 DataFrame 构建完成后通常应按“先看内容、再看结构、最后看类型”的顺序进行初步检查。1、查看整张表若数据量较小可以直接输出整个 DataFrameprint(scores)这种方式适合小型表格。2、查看前几行更常见的做法是使用 head() 先查看前几行print(scores.head())head() 默认显示前 5 行常用于检查• 列名是否正确• 数据是否已成功构建• 字段顺序是否合理• 前几条数据是否符合预期3、查看后几行若需要检查表格末尾的数据可以使用 tail()print(scores.tail())tail() 默认显示后 5 行适合用于检查数据末尾是否完整。六、表格的整体结构在查看内容之后还需要从整体上认识这张表。这一部分主要关注表格的尺寸、列集合以及索引形式。1、表格形状表格的形状shape由“行数”和“列数”组成print(scores.shape)输出(6, 6)这表示该表共有 6 行、6 列。2、列集合可以再次通过 columns 查看表中包含哪些字段print(scores.columns)这一步有助于核对表格结构是否完整。3、索引形式可以通过 index 查看表格当前采用的索引形式print(scores.index)这一步有助于判断表格使用的是默认索引还是已经设置了自定义索引。七、数据类型与基本信息构建 DataFrame 后还需要检查各列的数据类型Data Type是否合理。这是后续计算与统计能够正常进行的重要前提。在当前成绩表中学号、姓名、班级通常应为文本型数据语文、数学、英语通常应为数值型数据。1、查看基本信息可以使用 info() 查看整张表的基本信息scores.info()它通常包含以下内容• 行数与索引范围• 每列的非空值数量• 每列的数据类型• 内存占用信息该方法可用于检查缺失情况与各列类型是否合理。2、查看各列数据类型若只需查看各列的数据类型可以使用 dtypes 属性print(scores.dtypes)输出结果类似于学号 object姓名 object班级 object语文 int64数学 int64英语 int64dtype: object这说明“学号”“姓名”“班级”为文本型列“语文”“数学”“英语”为整数型列。这样的类型结构符合这张成绩表的实际语义。八、综合示例下面给出一个完整示例从原始数据出发构建 scores 这一 DataFrame并对其内容、结构与数据类型进行初步检查。import pandas as pd students [ {学号: S001, 姓名: 张三, 班级: C01, 语文: 88, 数学: 92, 英语: 85}, {学号: S002, 姓名: 李四, 班级: C01, 语文: 76, 数学: 81, 英语: 79}, {学号: S003, 姓名: 王五, 班级: C02, 语文: 90, 数学: 87, 英语: 93}, {学号: S004, 姓名: 赵六, 班级: C02, 语文: 85, 数学: 89, 英语: 88}, {学号: S005, 姓名: 孙七, 班级: C03, 语文: 91, 数学: 95, 英语: 90}, {学号: S006, 姓名: 周八, 班级: C03, 语文: 78, 数学: 84, 英语: 80}] # 构建 DataFramescores pd.DataFrame(students) # 查看前几行print( 前几行 )print(scores.head()) # 查看后几行print(\n 后几行 )print(scores.tail()) # 查看表格形状print(\n 表格形状 )print(scores.shape) # 查看列标签print(\n 列标签 )print(scores.columns) # 查看行索引print(\n 行索引 )print(scores.index) # 查看数据类型print(\n 数据类型 )print(scores.dtypes) # 查看基本信息print(\n 基本信息 )scores.info()该示例体现了本篇的基本任务流程1、将原始数据整理为 DataFrame2、查看表格内容3、检查表格结构4、确认数据类型与基本状态完成这些步骤后数据便已进入可继续处理的标准表格阶段。 小结DataFrame 是 Pandas 中最核心的二维表格数据结构。将原始数据整理成 DataFrame是后续数据选取、清洗、统计与分析的前提。本文围绕学生成绩表介绍了 DataFrame 与 Series 的基本含义、常见构建方式以及表格内容、结构和数据类型的基本检查方法。掌握这些内容才能为后续的数据处理操作建立稳定基础。延伸阅读《Pandas构建 Seriess》《Pandas构建 DataFrame》“点赞有美意赞赏是鼓励”

相关文章:

Pandas 操作指南(一):DataFrame 的构建与表格数据组织

在数据分析与数据处理中,原始数据往往并不是一开始就以规范表格的形式出现。它可能来自列表(list)、字典(dict)、CSV/Excel 文件,或程序运行过程中临时生成的数据集合。若这些数据尚未被整理为结构明确的表…...

Phi-3-mini-4k-instruct-gguf辅助前端开发:基于VSCode的智能代码补全实践

Phi-3-mini-4k-instruct-gguf辅助前端开发:基于VSCode的智能代码补全实践 1. 引言:当AI遇见前端开发 最近在写前端代码时,我经常遇到这样的情况:明明知道要实现什么功能,却卡在具体语法细节上;或者反复写…...

万象视界灵坛应用场景:智能安防视频截图分析——自动识别‘是否含未授权人员/危险物品/异常行为’语义

万象视界灵坛在智能安防中的应用:自动识别异常语义分析 1. 智能安防的痛点与解决方案 传统安防监控系统面临三大核心挑战: 人力成本高:需要专人24小时盯守监控画面反应滞后:异常事件往往事后才发现漏检率高:人工监控…...

Wallpaper Engine下载器革新:突破创意工坊壁纸获取瓶颈的高效解决方案

Wallpaper Engine下载器革新:突破创意工坊壁纸获取瓶颈的高效解决方案 【免费下载链接】Wallpaper_Engine 一个便捷的创意工坊下载器 项目地址: https://gitcode.com/gh_mirrors/wa/Wallpaper_Engine 你是否曾因Steam创意工坊复杂的下载流程而放弃心仪的动态…...

Qwen3.5-9B-AWQ-4bit效果展示:多行表格截图→结构化JSON输出+中文摘要双模式

Qwen3.5-9B-AWQ-4bit效果展示:多行表格截图→结构化JSON输出中文摘要双模式 1. 模型能力惊艳展示 千问3.5-9B-AWQ-4bit作为一款支持图像理解的多模态模型,在处理表格类图片时展现出令人印象深刻的能力。它不仅能够准确识别表格内容,还能提供…...

CLIP-GmP-ViT-L-14GPU算力适配:ViT-L模型显存占用分析与推理加速实践

CLIP-GmP-ViT-L-14 GPU算力适配:ViT-L模型显存占用分析与推理加速实践 1. 引言 当你拿到一个像 CLIP-GmP-ViT-L-14 这样强大的视觉-语言模型时,第一反应可能是兴奋——它拥有接近90%的ImageNet准确率,能精准理解图片和文字的关系。但当你尝…...

ChatGLM3-6B Streamlit应用案例:代码辅助、长文档摘要、闲聊三合一

ChatGLM3-6B Streamlit应用案例:代码辅助、长文档摘要、闲聊三合一 1. 项目简介:你的本地全能AI助手 想象一下,你正在写一段复杂的代码,卡在某个逻辑上;或者面对一份几十页的技术文档,需要快速提炼核心&a…...

电商智能客服:基于Qwen3-VL:30B的多模态问答系统实现

电商智能客服:基于Qwen3-VL:30B的多模态问答系统实现 1. 引言 电商客服每天面对海量咨询,从"这件衣服有没有M码"到"这个电器怎么安装",问题五花八门。传统客服需要不停切换商品页面、说明书、物流信息,忙得…...

Doorkeeper与Active Storage集成终极指南:如何为OAuth认证系统添加文件上传功能 [特殊字符]

Doorkeeper与Active Storage集成终极指南:如何为OAuth认证系统添加文件上传功能 🚀 【免费下载链接】doorkeeper Doorkeeper is an OAuth 2 provider for Ruby on Rails / Grape. 项目地址: https://gitcode.com/gh_mirrors/do/doorkeeper Doorke…...

PyTorch 2.8镜像开发者案例:独立开发者打造个人AI视频工作室技术栈

PyTorch 2.8镜像开发者案例:独立开发者打造个人AI视频工作室技术栈 1. 从零搭建AI视频工作室的技术选择 作为一名独立开发者,我一直在寻找能够支撑个人AI视频创作的技术方案。经过多次尝试,最终选择了基于PyTorch 2.8的深度学习镜像作为核心…...

Phi-4-mini-reasoning低成本部署:8GB显存即可运行的高性能推理模型

Phi-4-mini-reasoning低成本部署:8GB显存即可运行的高性能推理模型 1. 模型介绍 Phi-4-mini-reasoning 是一款专注于推理任务的文本生成模型,特别适合处理数学题、逻辑题、多步分析和简洁结论输出等场景。与通用聊天模型不同,它采用了"…...

从零到精通:Logisim-evolution数字电路设计完全指南

从零到精通:Logisim-evolution数字电路设计完全指南 【免费下载链接】logisim-evolution Digital logic design tool and simulator 项目地址: https://gitcode.com/gh_mirrors/lo/logisim-evolution 想要掌握数字电路设计的精髓,却苦于找不到合适…...

文墨共鸣大模型在网络安全领域的应用:模拟攻击脚本分析与安全报告撰写

文墨共鸣大模型在网络安全领域的应用:模拟攻击脚本分析与安全报告撰写 最近和几个做安全的朋友聊天,他们都在抱怨同一个问题:每天面对海量的告警日志和五花八门的攻击脚本,分析起来耗时费力,写报告更是头疼。技术细节…...

解决手柄兼容性问题的虚拟手柄驱动方案

解决手柄兼容性问题的虚拟手柄驱动方案 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在Windows游戏体验中,手柄兼容性问题常常成为玩家的困扰。…...

LSM303DLHC驱动开发:磁力计校准与六轴姿态解算

1. LSM303DLHC 姿态感知核心:高精度磁力计与加速度计集成库深度解析LSM303DLHC 是意法半导体(STMicroelectronics)推出的紧凑型六轴惯性测量单元(IMU),集成了三轴加速度计(2g/4g/8g 可选量程&am…...

医美可视化新体验:Face3D.ai Pro帮你“预览”术后3D效果

医美可视化新体验:Face3D.ai Pro帮你"预览"术后3D效果 关键词:3D人脸重建、医美效果预览、面部整形模拟、Face3D.ai Pro、AI医美咨询 摘要:在医美行业,客户最常问的问题是"我做完会变成什么样?"…...

碧蓝航线自动化助手:5分钟掌握解放双手的终极解决方案

碧蓝航线自动化助手:5分钟掌握解放双手的终极解决方案 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 你是否曾为…...

sguard_limit:如何彻底解决腾讯游戏反作弊系统导致的电脑卡顿问题

sguard_limit:如何彻底解决腾讯游戏反作弊系统导致的电脑卡顿问题 【免费下载链接】sguard_limit 限制ACE-Guard Client EXE占用系统资源,支持各种腾讯游戏 项目地址: https://gitcode.com/gh_mirrors/sg/sguard_limit 你是否在玩腾讯游戏时遇到过…...

ViGEmBus完全指南:解决游戏控制器兼容性问题的4个关键步骤

ViGEmBus完全指南:解决游戏控制器兼容性问题的4个关键步骤 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在游戏世界中,硬件兼容性问…...

Gost透明代理终极指南:实现无感知网络流量转发 [特殊字符]

Gost透明代理终极指南:实现无感知网络流量转发 🚀 Gost透明代理是一种强大的网络流量转发工具,能够实现完全无感知的网络代理体验。作为GO Simple Tunnel项目的核心功能,Gost透明代理让用户无需手动配置每个应用的代理设置&#x…...

obs-multi-rtmp技术突破:多平台直播资源效率提升的5大实践方法

obs-multi-rtmp技术突破:多平台直播资源效率提升的5大实践方法 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp obs-multi-rtmp作为一款开源的OBS Studio插件,通过…...

Elsevier Tracker:科研投稿状态追踪的自动化解决方案

Elsevier Tracker:科研投稿状态追踪的自动化解决方案 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 在学术出版流程中,论文投稿后的状态监控一直是科研人员面临的重要挑战。传统的人工查询方…...

旧手机秒变电脑摄像头:DroidCam创新应用指南

旧手机秒变电脑摄像头:DroidCam创新应用指南 【免费下载链接】droidcam GNU/Linux/nix client for DroidCam 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam 在远程办公与在线协作日益普及的今天,高质量摄像头成为必备工具。然而专用摄像…...

Phi-4-mini-reasoning实操手册:从模型加载到端口访问完整流程

Phi-4-mini-reasoning实操手册:从模型加载到端口访问完整流程 1. 模型概述 Phi-4-mini-reasoning是一款3.8B参数的轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。该模型由Azure AI Foundry开发,主打"小参数、强推…...

3MF格式与Blender插件实战解决方案:从设计障碍到3D打印全流程优化

3MF格式与Blender插件实战解决方案:从设计障碍到3D打印全流程优化 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 一、问题:当3D打印遭遇"数…...

QMCDecode:让QQ音乐加密文件重获自由的macOS工具

QMCDecode:让QQ音乐加密文件重获自由的macOS工具 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结…...

seo推广平台的报告数据如何看

SEO推广平台的报告数据如何看:深度解析与实用指南 在当今数字化竞争激烈的市场环境中,SEO推广平台的报告数据成为了衡量网站运营效果的重要指标。无论是初创企业还是成熟品牌,SEO数据的分析与解读直接关系到网站的流量、转化率以及品牌的市场…...

React Native测试配置终极指南:Jest与React Testing Library完整实战

React Native测试配置终极指南:Jest与React Testing Library完整实战 【免费下载链接】react-native-boilerplate A React Native template for building solid applications 🐙, using JavaScript 💛 or Typescript 💙 (you choo…...

QWEN-AUDIO与其他AI工具共存:如何合理分配GPU资源?

QWEN-AUDIO与其他AI工具共存:如何合理分配GPU资源? 1. 多AI工具共存的挑战与解决方案 在当前的AI应用场景中,单一GPU服务器往往需要同时运行多个AI模型。QWEN-AUDIO作为一款高性能语音合成系统,如何与其他视觉、语言模型和谐共存…...

小红书数据采集实战指南:3种高效方法解决内容分析难题

小红书数据采集实战指南:3种高效方法解决内容分析难题 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 小红书作为中国最大的生活方式分享平台,每天产…...