Task01:数据加载及探索性数据分析

数据载入
pandas使用chunksize分块处理大型csv文件,使用sep指定分隔符

name和header使用场景:
所以names和header的使用场景主要如下:

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

index_col
用来在加载时指定某个列为索引

usecols
如果列有很多,而我们不想要全部的列、而是只要指定的列就可以使用这个参数。
同 index_col 一样,除了指定列名,也可以通过索引来选择想要的列,比如:usecols=[1, 2] 也会选择 “name” 和 “address” 两列,因为 “name” 这一列对应的索引是 1、“address” 对应的索引是 2。
此外 use_cols 还有一个比较好玩的用法,就是接收一个函数,会依次将列名作为参数传递到函数中进行调用,如果返回值为真,则选择该列,不为真,则不选择。
选择列名的长度大于 4 的列,显然此时只会选择 address 这一列
pd.read_csv(‘girl.csv’, delim_whitespace=True, usecols=lambda x: len(x) > 4)

mangle_dupe_cols
实际生产用的数据会很复杂,有时导入的数据会含有重名的列。参数 mangle_dupe_cols 默认为 True,重名的列导入后面多一个 .1。如果设置为 False,会抛出不支持的异常:

prefix
prefix 参数,当导入的数据没有 header 时,设置此参数会自动加一个前缀。比如:

dtype
比如这里的id,默认解析的是整型,如果我们希望它是个字符串呢?
df = pd.read_csv(‘girl.csv’, delim_whitespace=True, dtype={“id”: str})

在Python中del 和drop方法都能够删除dataframe中的列数据,但两者也有着些许区别。
首先 del 属于 Python的内置函数函数,drop属于pandas中的内置函数
drop对列和行都进行操作;del仅对列进行操作。
drop一次可以处理多个项目;del一次只能操作一个。
drop可以就地操作或返回副本;del仅是就地操作。
两种函数在执行效率上很接近,但是在较大数据上,drop函数优势更明显,尤其实在处理多列数据时

loc和iloc的区别
loc:works on labels in the index.
iloc:works on the positions in the index (so it only takes integers).
也就是说loc是根据index来索引,比如下边的df定义了一个index,那么loc就根据这个index来索引对应的行。iloc并不是根据index来索引,而是根据行号来索引,行号从0开始,逐次加1。

浙ICP备19012682号