【第6章】pandas读取文件
admin
2024-03-12 02:49:49

1、pandas的解析函数

函数描述
read_csv从文件、URL或文件对象读取分隔好的数据,是默认的分隔符
read_table从文件、URL或文件型对象读取分隔好的数据,制表符 (\t)是默认的分隔符
read_fwf从特定宽度格式的文件中读取数据 (无分隔符)
read_clipboardread_table的剪贴板版本,在将表格从Web 页面上转换成数据时有用
read_excel从Excel的XLS或XLSX文件中读取表格数据
read_hdf读取用pandas存储的HDF5文件
read_html从HTML文件中读取所有表格数据
read_json从JSON(JavaScript Object Notation) 字符串中读取数据
read_msgpack读取MessagePack 二进制格式的pandas数据
read_pickle读取以Pythonpickle格式存储的任意对象
read_sas读取存储在SAS系统中定制存储格式的SAS数据集
read_sql将SOL查询的结果(使用SOLAlchemy)读取为pandas的DataFrame
read_stata读取Stata格式的数据集
read feather读取Feather二进制格式

2、read_csvread_table函数参数

参数描述
path表明文件系统位置的字符串、URL 或文件型对象
sep用于分隔每行字段的字符序列或正则表达式
header用作列名的行号,默认是0(第一行),如果没有列名的话,应该为None
index_col用作结果中行索引的列号或列名,可以是一个单一的名称/数字也可以是一个分层索引
names结果的列名列表,和 header=None 一起用
skiprows从文件开头处起,需要跳过的行数或行号列表
na_values需要用NA替换的值序列
comment在行结尾处分隔注释的字符
parse_dates尝试将数据解析为 datetime,默认是 False。如果为 True,将尝试解析所有的列。也可以指定列号或列名列表来进行解析。如果列表的元素是元组或列表,将会把多个列组合在一起进行解析(例如日期/时间将拆分为两列)
keep date col如果连接列到解析日期上,保留被连接的列,默认是 False
converters包含列名称映射到函数的字典 (例如[foo’:f会把函数f应用到’foo’列)
dayfirst解析非明确日期时,按照国际格式处理(例如7/6/2012-> June7,2012),默认为 False

3、分隔符(sep

# 1、读取ex1文件(read_csv)
pd.read_csv(Path('../源代码/examples/ex1.csv'))
"""a	b	c	d	message
0	1	2	3	4	hello
1	5	6	7	8	world
2	9	10	11	12	foo
"""
-------------------------------------------------------------
# 1-1、读取文件(read_table)
pd.read_table(Path('../源代码/examples/ex1.csv'))
"""a,b,c,d,message
0	1,2,3,4,hello
1	5,6,7,8,world
2	9,10,11,12,foo
"""
-------------------------------------------------------------
# 1-2、读取文件,分隔符(sep)
pd.read_table(Path('../源代码/examples/ex1.csv'),sep=',')
"""
a	b	c	d	message
0	1	2	3	4	hello
1	5	6	7	8	world
2	9	10	11	12	foo
"""
-------------------------------------------------------------
# 4、读取ex3.txt文件(read_csv)
pd.read_csv(Path('../源代码/examples/ex3.txt'))
"""
A B C
0	aaa -0.264438 -1.026059 -0.619500
1	bbb 0.927272 0.302904 -0.032399
2	ccc -0.264273 -0.386314 -0.217601
3	ddd -0.871858 -0.348382 1.100491
"""
-------------------------------------------------------------
# 4-1、用正则表达式,作为分隔符,【正则表达式】\s+ 意思就是至少有一个空白字符存在
pd.read_csv(Path('../源代码/examples/ex3.txt'),sep='\s+')
"""A			B			C
aaa	-0.264438	-1.026059	-0.619500
bbb	0.927272	0.302904	-0.032399
ccc	-0.264273	-0.386314	-0.217601
ddd	-0.871858	-0.348382	1.100491
"""

4、设置列名(headernames

# 2、读取ex2文件(read_csv),没有列名
pd.read_csv(Path('../源代码/examples/ex2.csv'))
"""1	2	3	4	hello
0	5	6	7	8	world
1	9	10	11	12	foo
"""
-------------------------------------------------------------
# 2-1、默认列名(header=None)
pd.read_csv(Path('../源代码/examples/ex2.csv'),header=None)
"""0	1	2	3	4
0	1	2	3	4	hello
1	5	6	7	8	world
2	9	10	11	12	foo
"""
-------------------------------------------------------------
# 2-2、指定列名(names)
pd.read_csv(Path('../源代码/examples/ex2.csv'),names=['a','b','c','d','message'])
"""a	b	c	d	message
0	1	2	3	4	hello
1	5	6	7	8	world
2	9	10	11	12	foo
"""
-------------------------------------------------------------
# 2-3、列名变成行索引(index_col)
pd.read_csv(Path('../源代码/examples/ex2.csv'),names=['a','b','c','d','message'],index_col='message')
"""a	b	c	d
message				
hello	1	2	3	4
world	5	6	7	8
foo	9	10	11	12
"""

5、跳行(skiprows

# 5、读取ex4.txt文件(read_csv)
pd.read_csv(Path('../源代码/examples/ex4.csv'))
"""# hey!a		b		c	d	message
# just wanted to make things for you	NaN		NaN	NaN	NaN
# who reads CSV files with computers	anyway	NaN	NaN	NaN1	2		3	4	hello5	6		7	8	world9	10		11	12	foo
"""
-------------------------------------------------------------
# 5-1、跳过第1、3、4行(skiprows)
pd.read_csv(Path('../源代码/examples/ex4.csv'),skiprows=[0,2,3])
"""a	b	c	d	message
0	1	2	3	4	hello
1	5	6	7	8	world
2	9	10	11	12	foo
"""

6、处理缺失值(na_values

相关内容

热门资讯

老干妈“味道变了”?回应来了 (来源:都市现场)近日,“老干妈为节省成本味道变了”的话题引发网友热议。有消费者反映老干妈味道变了,...
敏感时刻,美国媒体突然怒斥白宫... 转自:北京日报客户端曾威胁伊朗政府不得对伊朗国内的“抗议者”采取措施,否则就会出兵干涉的美国白宫,如...
乌克兰国防部长、国家安全局局长... 北京青年报2026-01-13 23:51:18当地时间13日,乌克兰最高拉达(议会)在全体会议上未...
2男1女专盗寺庙功德箱,警方披... 1月14日,据辽宁葫芦岛公安消息:近日,市局南票分局成功打掉一个流窜多省专门盗窃寺庙功德箱的犯罪团伙...
奉贤金海街道举办创新挑战赛,让... (来源:上观新闻)“以往找外包公司做品牌推广,成本高但未必贴合年轻群体需求,没想到这场赛事能汇集那么...