尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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天打卡完成。明天见本系列是个人学习笔记如有错误欢迎在评论区指正交流。
RELATED

相关推荐

2026年Windows音频技术:AI驱动300%效率提升

2026年Windows音频技术:AI驱动300%效率提升

1. 2026桌面端音频技术全景概览Windows平台音频技术栈正在经历从传统多媒体框架向AI驱动的智能音频处理转型。根据微软最新技术路线图,到2026年,音频处理管线将深度整合神经音频编解码器、实时声学场景分析和自适应降噪三大核心技术模块。实测数据显示&a…

📅 2026/8/22 21:57:07
SVG技术深度解析:从矢量原理到现代应用

SVG技术深度解析:从矢量原理到现代应用

1. SVG技术全景解析:从基础到高阶应用 SVG(Scalable Vector Graphics)作为W3C推荐的二维矢量图形标准,正在经历从简单图标到复杂可视化工具的蜕变。不同于传统位图格式,SVG基于XML描述图形,这种特性使其在响…

📅 2026/8/22 21:57:08
火山云豆包大模型:低成本高性能的技术实现

火山云豆包大模型:低成本高性能的技术实现

1. 火山云豆包大模型的商业背景与技术定位2023年大模型价格战白热化阶段,火山引擎推出的豆包大模型以"每千tokens 0.0008元"的定价策略引发行业震动。这个价格仅为同类产品的1/10,但低价背后是字节跳动特有的技术架构优势在支撑。作为日均处理…

📅 2026/9/10 9:18:37
MORE NEWS

更多资讯

📰

React Native在OpenHarmony平台的NFC开发指南

1. React Native与OpenHarmony的NFC开发概述在移动应用开发领域,近场通信(NFC)技术正变得越来越重要。作为OpenHarmony生态的重要组成部分,NFC功能可以为用户提供便捷的交互体验。本文将详细介绍如何在React Native应用中实现OpenHarmony平台的NFC功能。…

📰

使用 MCP Toolbox 搭建 AlloyDB for PostgreSQL MCP Server:配置、认证与数据库运维实战

使用 MCP Toolbox 搭建 AlloyDB for PostgreSQL MCP Server:配置、认证与数据库运维实战 【免费下载链接】mcp-toolbox MCP Toolbox for Databases is an open source MCP server for databases. 项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox …

📰

Kubernetes集群运维实践:从安装到生产部署

Kubernetes集群运维——从安装到生产部署写这篇东西的起因,是最近连续帮几个团队梳理Kubernetes集群,发现大家普遍卡在同一个地方:集群是装上去了,Pod也跑起来了,但离“生产可用”还差一大截。有的是资源配额完全没规划…

📰

Netty管道机制:Head、Tail与ChannelInitializer解析

1. Netty管道机制的核心设计在Netty的网络通信框架中,管道(Pipeline)机制是实现事件处理和业务逻辑的核心架构。理解Head和Tail这两个内置处理器与ChannelInitializer的关系,需要先深入掌握Netty管道的基本工作原理。每个新建立的…

📰

Pandas DataFrame核心技术与数据分析实战指南

1. Pandas DataFrame:数据分析的基石工具DataFrame作为Pandas库的核心数据结构,已经成为现代数据分析的标准工具。这种二维表格结构完美融合了SQL表的灵活性和Excel电子表格的直观性,同时提供了强大的编程接口。我在处理电商用户行为数据时&a…

📰

如何把 NOS Town Groq 运行时接入 Gas Town 编排核心?

如何把 NOS Town Groq 运行时接入 Gas Town 编排核心? 【免费下载链接】gastown Gas Town - multi-agent workspace manager 项目地址: https://gitcode.com/GitHub_Trending/ga/gastown 如果你已经装好 Gas Town 编排核心,想把各角色&#xff08…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬