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

推荐订阅源

aimingoo的专栏
aimingoo的专栏
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Schneier on Security
Cisco Talos Blog
Cisco Talos Blog
T
ThreatConnect
J
Java Code Geeks
博客园 - 司徒正美
A
Arctic Wolf
T
True Tiger Recordings
C
Cybersecurity and Infrastructure Security Agency CISA
Cyberwarzone
Cyberwarzone
Know Your Adversary
Know Your Adversary
T
Threat Research - Cisco Blogs
V
Vulnerabilities – Threatpost
Recorded Future
Recorded Future
P
Palo Alto Networks Blog
The Hacker News
The Hacker News
The Register - Security
The Register - Security
S
Securelist
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
I
Intezer
P
Privacy & Cybersecurity Law Blog
Scott Helme
Scott Helme
K
Kaspersky official blog
博客园 - 聂微东
Last Week in AI
Last Week in AI
V
V2EX
小众软件
小众软件
F
Fox-IT International blog
Martin Fowler
Martin Fowler
Apple Machine Learning Research
Apple Machine Learning Research
T
Tenable Blog
F
Future of Privacy Forum
Microsoft Security Blog
Microsoft Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog
阮一峰的网络日志
阮一峰的网络日志
GbyAI
GbyAI
T
Threatpost
I
InfoQ
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Tor Project blog
G
GRAHAM CLULEY
D
DataBreaches.Net

博客园 - 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入门学习---第一阶段第十章 数据可视化 - tsembrace 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="-")