惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
量子位
M
MIT News - Artificial intelligence
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
雷峰网
雷峰网
I
InfoQ
罗磊的独立博客
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
博客园 - 三生石上(FineUI控件)
The GitHub Blog
The GitHub Blog
K
Kaspersky official blog
P
Privacy & Cybersecurity Law Blog
S
SegmentFault 最新的问题
T
Threat Research - Cisco Blogs
H
Help Net Security
小众软件
小众软件
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
CERT Recently Published Vulnerability Notes
WordPress大学
WordPress大学
T
Tenable Blog
T
The Blog of Author Tim Ferriss
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - Franky
A
Arctic Wolf
T
Threatpost
Scott Helme
Scott Helme
C
Cybersecurity and Infrastructure Security Agency CISA
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
The Exploit Database - CXSecurity.com
G
GRAHAM CLULEY
Security Latest
Security Latest
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
V
Vulnerabilities – Threatpost
P
Privacy International News Feed
S
Schneier on Security
Latest news
Latest news
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com

博客园 - tsembrace

Pandas数据分析教程,由浅入深讲解(四) Pandas数据分析教程,由浅入深讲解(三) Pandas数据分析教程,由浅入深讲解(二) Pandas数据分析教程,由浅入深讲解(一) B站黑马Python+AI零基础入门(二)AI应用-实战 B站黑马Python+AI零基础入门(一)AI应用-基础 B站清华128小时Python高级教程一(C3深入类和对象) B站清华128小时Python高级教程一(C1、C2) B站python入门学习---第二阶段第二章数据库、SQL和MySQL B站python入门学习---第二阶段第一章类和对象 B站python入门学习---第一阶段第十章 数据可视化 B站python入门学习---第一阶段第八~九章 文件操作、异常、模块与包 B站python入门学习---第一阶段前七章回顾复习(二) B站python入门学习---第一阶段前七章回顾复习(一) Python入门学习(十)第十四章其他 Python入门学习(九)Python的高级语法与用法(四)装饰器 Python入门学习(九)Python的高级语法与用法(三)函数式编程 Python入门学习(九)Python的高级语法与用法(二)闭包 Python入门学习(九)Python的高级语法与用法(一)枚举 Python入门学习(八)JSON、反序列化、序列化 Python入门学习(七)高级部分:正则表达式(二) Python入门学习(七)高级部分:正则表达式 Python入门学习(六)高级部分:面向对象 Python入门学习(五)函数 Python入门学习(四)流程控制 包与模块
Pandas数据分析教程,由浅入深讲解(五)Pandas IO操作
tsembrace · 2026-05-25 · via 博客园 - tsembrace

七、Pandas IO操作:对文件的读写

pandas IO操作主要是读取有特定格式的文件,主要是EXCEL,CSV,JSON,数据库等文件。

1、CSV文件的读写:pd.read_csv()

CSV文件一般是一行一行的,数据之间是通过逗号分隔的。

import pandas as pd
city = pd.read_csv("city.csv")
print(city)
# 输出
    lucy  19  北京
0  merry  20  上海
1    tom  22  广州
print(type(city))  # 实质上就是一个DataFrame

pd.read_csv()方法有个参数sep,因为CSV文件默认就是逗号分隔,所以这个参数默认值就是逗号。

同时,观察city对象的打印输出,lucy,19,北京这一行变成了列标签;行标签使用了0、1默认值,如下:

print(city.columns)
# 输出
Index(['lucy', '19', '北京'], dtype='object')

print(city.index)
# 输出
RangeIndex(start=0, stop=2, step=1)

上面的标签明显不合逻辑:首先是行标签方面,把lucy的信息作为了行标签,这是因为在读取时候默认是读取第一行作为列标签;其次列标签方面更合理的是把第一列信息(即名字信息)作为行标签,使用了0,1作为行标签的原因也是因为没有设置对应参数。

pd.read_csv()方法中header是用来设置列标签的,index_col是用来设置把文件中那一列信息设置为行标签的。

如果header=None,则默认列标签会使用序号标签,如果要设置自定义行标签则可以使用names参数;index_col=0则是指把第0行设置为行标签信息,如下:

city = pd.read_csv("city.csv",header=None,index_col=0)
print(city)
# 输出
        1   2
0            
lucy   19  北京
merry  20  上海
tom    22  广州

print(city.columns)
# 输出
Index([1, 2], dtype='int64')

print(city.index)
# 输出
Index(['lucy', 'merry', 'tom'], dtype='object', name=0)

pd.read_csv()同样可以读取文本文件,只是需要针对其中分隔符作出特殊设定。

2、Excel文件的读写:pd.read_excel()

exc = pd.read_excel("excel1.xlsx")
print(exc)

read_excel()方法与read_csv()方法总体比较相似:

exc = pd.read_excel("excel1.xlsx",index_col=0)
print(exc)
print(exc.shape)

如上,不设置参数的话,对于多sheet的excel文件只会读到第一个sheet,可以通过sheet_name参数设置读取的sheet表内容:

exc = pd.read_excel("excel1.xlsx",index_col=0,sheet_name="员工信息")
print(exc)
exc = pd.read_excel("excel1.xlsx",index_col=0,sheet_name=0)
print(exc)
exc = pd.read_excel("excel1.xlsx",index_col=0,sheet_name="产品信息")
print(exc)
exc = pd.read_excel("excel1.xlsx",index_col=0,sheet_name=1)
print(exc)

写入文件,CSV也类似:

# 写入Excel
exc.to_excel("excel2.xlsx")

有时候,python自带的文件操作工具也可以和pandas的IO操作方法结合起来:

# 先通过open()打开文件,并设置errors="ignore"忽略错误
fp = open("csv文件.csv", "r", encoding="utf-8", errors="ignore")

# 然后再通过pd.read_csv()方法读取文件,文件参数直接设为上面打开的文件对象
my_csv = pd.read_csv(fp, sep="-")