day-037-Pandas数据读取
Day 37Pandas 数据读取——从各种来源加载数据昨天手动创建了 DataFrame。现实中数据通常来自文件。今天学如何从 CSV、Excel、JSON、数据库等各类数据源中读取数据到 DataFrame。一、读取 CSV——最常用的数据源importpandasaspd# 基本读取dfpd.read_csv(data.csv)# 常用参数一览dfpd.read_csv(data.csv,encodingutf-8,# 编码sep,,# 分隔符默认逗号header0,# 第几行作为列名0第一行index_col0,# 把第几列作为行索引usecols[姓名,成绩],# 只读取指定列nrows100,# 只读前100行skiprows2,# 跳过前2行dtype{年龄:int},# 指定列的数据类型na_values[NA,缺失],# 把指定值当作 NaN)print(df.head())# 前5行print(df.tail(3))# 后3行实战读取真实数据集# 读取一个典型的 CSVdfpd.read_csv(students.csv,encodingutf-8)print(f形状{df.shape})print(f列名{list(df.columns)})print(f每列类型\n{df.dtypes})print(f\n前3行\n{df.head(3)})处理中文乱码# 尝试顺序utf-8 → gbk → gb2312 → gb18030encodings[utf-8,utf-8-sig,gbk,gb2312,gb18030,latin-1]forencinencodings:try:dfpd.read_csv(data.csv,encodingenc)print(f成功用{enc}编码读取)breakexceptUnicodeDecodeError:print(f{enc}失败尝试下一个...)continue二、写入 CSVdf.to_csv(output.csv,indexFalse,# 不保存行索引encodingutf-8-sig,# utf-8-sig 让 Excel 能正确打开中文sep,,columns[姓名,成绩],# 只保存指定列)为什么用utf-8-sig而不是utf-8utf-8标准编码但 Excel 打开时中文会乱码utf-8-sig在文件头加 BOMExcel 能正确识别中文三、读取 Excel# 先安装pip install openpyxl# 读取 Exceldfpd.read_excel(data.xlsx,sheet_nameSheet1,# 工作表名或索引 0header1,# 第2行作为列名usecolsA:D,# 只读 A-D 列nrows50,)# 读取所有工作表all_sheetspd.read_excel(data.xlsx,sheet_nameNone)forname,sheet_dfinall_sheets.items():print(f工作表 {name}{sheet_df.shape})# 写入 Excelwithpd.ExcelWriter(output.xlsx,engineopenpyxl)aswriter:df.to_excel(writer,sheet_name学生成绩,indexFalse)df.to_excel(writer,sheet_name备份,indexFalse)四、读取 JSON# 读取 JSON 文件dfpd.read_json(data.json)print(df)# 读取嵌套 JSON带结构的importjsonwithopen(api_data.json,r,encodingutf-8)asf:datajson.load(f)# 用 json_normalize 展平嵌套结构dfpd.json_normalize(data,record_path[results],# 记录所在的路径meta[page,total]# 保留的元数据字段)五、其他数据源速览# SQL 数据库需要 pip install sqlalchemy 数据库驱动fromsqlalchemyimportcreate_engine enginecreate_engine(sqlite:///database.db)dfpd.read_sql(SELECT * FROM students WHERE score 80,engine)# HTML 网页中的表格tablespd.read_html(https://example.com/data-table.html)dftables[0]# 第一个 table 标签# 剪贴板复制表格后直接在 Python 中读取dfpd.read_clipboard()# 从剪贴板读取# 字典/列表直接转 DataFramedata[{name:小明,score:85},{name:小红,score:92},]dfpd.DataFrame(data)# NumPy 数组转 DataFrameimportnumpyasnp arrnp.array([[1,2,3],[4,5,6]])dfpd.DataFrame(arr,columns[A,B,C])六、了解你的数据——读取后的第一步dfpd.read_csv(data.csv,encodingutf-8)# 第一件事概览print(f行数{len(df)}列数{len(df.columns)})print(f列名{list(df.columns)})# 查看前几行和后几行print(df.head())print(df.tail())# 查看基本统计print(df.describe())# 数值列统计print(df.describe(includeall))# 包含非数值列# 查看缺失值print(df.isnull().sum())# 每列有多少缺失值# 查看每列的唯一值数量print(df.nunique())七、实战加载并初步探索一个数据集# 创建一个模拟数据集然后探索importpandasaspdimportnumpyasnp np.random.seed(42)# 模拟网上商店订单数据n1000dfpd.DataFrame({order_id:range(1001,1001n),customer:np.random.choice([张三,李四,王五,赵六],n),product:np.random.choice([手机,电脑,平板,耳机,手表],n),price:np.random.uniform(50,5000,n).round(2),quantity:np.random.randint(1,5,n),date:pd.date_range(2026-01-01,periodsn,freqh),})# 保存为 CSVdf.to_csv(orders.csv,indexFalse,encodingutf-8-sig)# 重新加载并探索orderspd.read_csv(orders.csv,encodingutf-8-sig,parse_dates[date])# 自动解析日期列print(f数据集{orders.shape[0]}条订单{orders.shape[1]}列)print(f日期范围{orders[date].min()}~{orders[date].max()})print(f总销售额{orders[price].sum():,.2f})print(f每单均价{orders[price].mean():.2f})八、今日学习总结学习内容掌握情况一句话要点pd.read_csv()✅ 重点CSV 是最常用的数据来源编码处理✅ 重点utf-8 不行试 gbk写文件用 utf-8-sigpd.read_excel()✅ 了解需要 openpyxlpd.read_json()✅ 了解JSON 转 DataFrame数据概览✅ 重点head/info/describe/isnull/sum/nunique其他数据源✅ 了解SQL/HTML/剪贴板/NumPy今日踩坑记录CSV 第一列变成乱码存了 utf-8 但带 BOM 头。用encodingutf-8-sig读取。大文件 read_csv 太慢用nrows100先看前100行确定列名和类型再用dtype指定类型能快很多。日期列被当成字符串read_csv默认不解析日期。用parse_dates[date_column]参数。九、明天学什么学会了读取数据明天学 Pandas 的核心技能——数据清洗处理缺失值、重复值、类型转换、异常值。数据科学 80% 的时间在清洗数据。Pandas 让这个过程从痛苦变成顺手。第37天打卡完成。明天见本系列是个人学习笔记如有错误欢迎在评论区指正交流。

相关新闻

解决Docker Desktop WSL2磁盘空间不释放问题

解决Docker Desktop WSL2磁盘空间不释放问题

1. 问题现象与背景分析在Windows系统上使用Docker Desktop配合WSL2后端运行时,用户经常遇到一个棘手问题:删除容器后,WSL2分配的磁盘空间并未自动释放。随着容器创建和删除次数的增加,WSL2虚拟硬盘文件(ext4.vhdx&…

2026/7/22 4:00:15 阅读更多 →
网络符号‘5.31‘的传播机制与社会影响分析

网络符号‘5.31‘的传播机制与社会影响分析

1. "5.31"现象的社会观察 "5.31"这个日期数字组合在近年来的网络语境中逐渐演变成一个具有特殊含义的符号。最初它只是日历上一个普通的日子,但随着网络文化的发酵,这个日期被赋予了更多象征意义。从我的观察来看,这种现…

2026/7/22 4:00:15 阅读更多 →
CentOS防火墙管理:firewalld与iptables端口开放指南

CentOS防火墙管理:firewalld与iptables端口开放指南

1. 理解端口开放的基本概念在CentOS系统中开放端口是系统管理员和开发人员的日常工作之一。端口是网络通信的端点,每个网络服务都需要通过特定的端口与外界通信。理解端口开放的本质,有助于我们更安全、高效地管理系统。端口开放实际上是在操作系统的防火…

2026/7/22 4:00:15 阅读更多 →

最新新闻

Tokio runtime 调优实战:从默认配置到生产调优的完整记录与数据

Tokio runtime 调优实战:从默认配置到生产调优的完整记录与数据

Tokio runtime 调优实战:从默认配置到生产调优的完整记录与数据 一、默认配置的"舒适区陷阱" 最初的服务代码是这样的: // // 最初的版本:直接用 #[tokio::main] 默认配置 // use tokio::net::TcpListener; use tokio::io::{Asyn…

2026/7/25 7:10:06 阅读更多 →
AI视频生成技术解析:Wan2.2工作流实现无闪烁电影级视频

AI视频生成技术解析:Wan2.2工作流实现无闪烁电影级视频

这次我们来深入解析一个在AI视频生成领域备受关注的Wan2.2工作流方案。这个方案结合了阿里通义万相2.2的强大视频生成能力,通过ComfyUI工作流实现了文生视频和图生视频的无缝切换,特别在生成丝滑无闪烁的美女视频方面表现出色。 从实际应用角度看&#…

2026/7/25 7:10:06 阅读更多 →
程序员的大型 Rust 项目初体验:代码组织是第一道坎的真实感受

程序员的大型 Rust 项目初体验:代码组织是第一道坎的真实感受

程序员的大型 Rust 项目初体验:代码组织是第一道坎的真实感受 一、第一次打开仓库时我像个无头苍蝇 入职第一天,mentor 甩给我一个 Git 地址,说"先跑起来熟悉熟悉"。我 clone 下来打开,看到这样的目录结构瞬间懵了&…

2026/7/25 7:10:06 阅读更多 →
WASM 推理项目的技术债务:哪些设计决策现在回头看需要重构

WASM 推理项目的技术债务:哪些设计决策现在回头看需要重构

WASM 推理项目的技术债务:哪些设计决策现在回头看需要重构 一、最大的债:把所有逻辑塞进一个 WASM 模块 项目初期,为了快速验证可行性,我把模型加载、推理、文本处理全部塞进了一个 WASM 模块。 // // 当时的做法:一个…

2026/7/25 7:10:06 阅读更多 →
AI编程实战:Codex与Claude Code结合Vibe Coding打造电商项目

AI编程实战:Codex与Claude Code结合Vibe Coding打造电商项目

这次我们来看一个关于 Codex 和 Claude Code 结合 Vibe Coding 完成企业级电商项目实战的教程。这个主题的核心不是介绍某个新模型,而是聚焦于一套高效的 AI 辅助编程工作流。简单来说,就是如何利用现有的顶级 AI 编程工具(Codex/Claude Code),在“氛围编程”(Vibe Codin…

2026/7/25 7:10:06 阅读更多 →
AI编程助手如何重塑开发者技能栈与工作流

AI编程助手如何重塑开发者技能栈与工作流

1. 编程门槛的历史性变革十年前我刚开始写代码时,光是配置开发环境就折腾了整整三天。现在看着GitHub Copilot几秒内生成可运行的函数代码,不禁感慨技术演进的惊人速度。编程这个曾经高度专业化的技能,正在经历一场前所未有的民主化革命——不…

2026/7/25 7:09:05 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 5:08:22 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 5:13:53 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻