• 【第6章】1、pandas读取文件(sep分隔符,header列名,skiprows跳行、na_values缺失值)


    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
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    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
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    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	NaN
    									1	2		3	4	hello
    									5	6		7	8	world
    									9	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
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    6、处理缺失值(na_values

    # 6、读取ex5.txt文件(read_csv)
    pd.read_csv(Path('../源代码/examples/ex5.csv'))
    """
    	something	a	b	c	d	message
    0	one			1	2	3.0	4	NaN
    1	two			5	6	NaN	8	world
    2	three		9	10	11.0	12	foo
    """
    -------------------------------------------------------------
    # 6-1、判断是否为空(isnull)
    pd.isnull(pd.read_csv(Path('../源代码/examples/ex5.csv')))
    """
    	something	a		b		c		d		message
    0	False		False	False	False	False	True
    1	False		False	False	True	False	False
    2	False		False	False	False	False	False
    """
    -------------------------------------------------------------
    # 6-2、指定缺失值(na_values)
    pd.read_csv(Path('../源代码/examples/ex5.csv'),na_values={'something':['one']})
    """
    	something	a	b	c		d	message
    0	NaN			1	2	3.0		4	NaN
    1	two			5	6	NaN		8	world
    2	three		9	10	11.0	12	foo
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
  • 相关阅读:
    8.cmake常用命令
    遍历堆 PAT甲级 1155 堆路径
    02-HotSpot 虚拟机对象探秘
    七大排序之选择排序
    SOLIDWORKS Electrical 3D--精准的三维布线
    Java项目实战《苍穹外卖》 二、项目搭建
    SSM+人才交流平台 毕业设计-附源码221022
    Express框架概述
    如何在 Elasticsearch 中选择精确 kNN 搜索和近似 kNN 搜索
    R包Colorfindr识别图片颜色|用刀剑神域方式打开SCI科研配色
  • 原文地址:https://blog.csdn.net/weixin_45065754/article/details/128141704