pandas

5、header:设置导入 DataFrame 的列名称,默认为 “infer”,注意它与下面介绍的 names 参数的微妙关系。

6、names:当names没被赋值时,header会变成0,即选取数据文件的第一行作为列名;当 names 被赋值,header 没被赋值时,那么header会变成None。如果都赋值,就会实现两个参数的组合功能。

举个栗子:

  1. names 没有被赋值,header 也没赋值:

这种情况下,header为0,即选取文件的第一行作为表头

pd.read_csv(‘girl.csv’,delim_whitespace=True)

  1. names 没有被赋值,header 被赋值:

不指定names,指定header为1,则选取第二行当做表头,第二行下面为数据

pd.read_csv(‘girl.csv’,delim_whitespace=True, header=1)

  1. names 被赋值,header 没有被赋值:

pd.read_csv(‘girl.csv’, delim_whitespace=True, names=[“编号”, “姓名”, “地址”, “日期”])

可以看到,names适用于没有表头的情况,指定names没有指定header,那么header相当于None。
一般来说,读取文件的时候会有一个表头,一般默认是第一行,但是有的文件中是没有表头的,那么这个时候就可以通过names手动指定、或者生成表头,而文件里面的数据则全部是内容。所以这里id、name、address、date也当成是一条记录了,本来它是表头的,但是我们指定了names,所以它就变成数据了,表头是我们在names里面指定的。
4) names和header都被赋值:

pd.read_csv(‘girl.csv’, delim_whitespace=True, names=[“编号”, “姓名”, “地址”, “日期”], header=0)

这个时候,相当于先不看names,只看header,header为0代表先把第一行当做表头,下面的当成数据;然后再把表头用names给替换掉。
所以names和header的使用场景主要如下:

  1. csv文件有表头并且是第一行,那么names和header都无需指定;
  2. csv文件有表头、但表头不是第一行,可能从下面几行开始才是真正的表头和数据,这个时候指定header即可;
  3. csv文件没有表头,全部是纯数据,那么我们可以通过names手动生成表头;
  4. csv文件有表头、但是这个表头你不想用,这个时候同时指定names和header。先用header选出表头和数据,然后再用names将表头替换掉,就等价于将数据读取进来之后再对列名进行rename
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值