如果你也用“pandas.read_csv”处理文本,这几个参数你应该掌握

我相信使用pandas的同学们,基本都会用到这个方法:read_csv()。这个方法确实简单易用,但是内置参数特别多,所以今天就分享下这个方法的一些使用技巧。

基础使用

只需要给一个文件路径即可

df = pandas.read_csv("filepath")

接下来开始详细介绍几个比较有用的参数

参数详解

filepath_or_buffer

这是唯一的位置参数,必须进行传递。可以是字符串,可以是URL,有效的URL方案包括http、ftp、s3路径,也可以是一个通过read()方法打开的文件流。

sep/delimiter

分隔符。str类型,默认为",",read_table默人分隔符为"\t",可以使用正则表达式,我遇到过这种

header

将行号用作列名,且是数据的开头。默认情况下,首行作为列名。如果指定数字,则代表着此数字的那一行作为列名。

注意,如果设置了skip_blank_lines=True,此参数将忽略空行和注释行, 因此 header=0 表示第一行数据而非文件的第一行。

header=None,则代表着首行不作为列名使用。这种情况的使用基本都配合着names=[“column_name”, “column_name”, “column_name”]指定列名使用,例如:首先指定第一行不是列名,然后自定义列名为a,b,c,d

df = pd.read_csv(filepath, header=None, names=["a", "b", "c", "d"])

usecols

读取文件,只选择其中的几列进行读取,有以下两种使用方式

1.列表形式

一个有效的列表型参数usecols 将会是是[0, 1, 2]或者[‘foo’, ‘bar’, ‘baz’]

比如说你只想读取一个文件的第一列,第二列和第三列,代码如下

df = pd.read_csv(filepath,usecols=[0,1,2])

2.函数形式,比如lambda函数

只会保留满足函数条件为True的几列

pd.read_csv(filepath, usecols=lambda x: x.upper() in ['column_name', 'column_name'])

dtype

指定df每一列的数据类型

因为pandas在不指定列数据类型的前提下,遇到数字则默认为数字格式,遇到字符串默认为字符串类型,这样有个弊端,比如日期,比如一些实际上作为字符串类型使用的会被读取为数字格式,所以一般要设置这个参数。如下所示

pd.read_csv(filepath, dtype={"cloumn_name": str, "column_name": int})

nrows

指定读取多少行的数据,尤其是遇到大数据的时候

parse_dates

读取文件时,将csv中某列的(日期)字符串转换成日期格式,一般能用到的写法如下

1.布尔值 -> 解析索引
2.列表形式([0,1,2]这种形式) -> 指定哪几列解析为日前/时间格式
3.列表中的列表形式 -> 合并列表中的列作为一个日期列使用

这个时间的转换有个坑,就是一旦时间列存在异常的时间范围(比如说3000-1-1这种),则不能将字符串转化为时间格式!

na_values

指定哪些值会被初始化为Nan值,比如

na_values=[0]代表着所有为0的值都会被置为None值

本章<完>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值