Pandas学习总结190802
已经用pandas处理过几组数据了,想借此机会,为了不要每次都现用现查(捂脸),稍微总结一下我最近常用的功能,算是初学者的一份笔记了。
- read_csv
- 这是我几乎每次都会用的,从CSV文件中读取。其中有的CSV文件没有表头,可以设置
header=None
。 - 除此之外,今天又遇到了一份xls的文件,对应的有read_excel。
- 今天还涉及了一些与编码有关的问题,正常UTF-8编码的文件用Excel看是乱码,然后用Excel制作的CSV文件不能直接使用read_csv,之前以为要手动通过记事本之类的转一下码,但是不知为何转码后能够以UTF-8读入,但是是乱码。Excel的编码格式是ansi,因此只要加一句
encoding='ansi'
,即可。
- 这是我几乎每次都会用的,从CSV文件中读取。其中有的CSV文件没有表头,可以设置
- list(df)
- 今天在别的博客上看到的,获取dataframe的header的很快捷的方法。返回的是一个python的list,每一列的表头。
- loc
- 这是一个访问DataFrame很常用的方法,同时可以修改内容。
loc[]
很类似于numpy的使用方法,但是之前遇到过的问题有两个。- 第一个是,loc使用的应该不是索引号,而是表头的标签,这种问题经常出现在header不是None的情况。
- 第二个是,这里的分片,是[a, b],而不是numpy的[a, b)。
- 这是一个访问DataFrame很常用的方法,同时可以修改内容。
- tolist()
- 要想从pandas的DataFrame直接转换为python的list,对DataFrame使用此方法即可。
- sort_values
- 这里可以按照一定的规则排序。其中,axis=设置以那个轴的标签排序,axis=0表示按列的标签而不是行。by=[]表示按那些标签排序。如果要想使用多个标签排序,最好不要一个一个排,因为这样不仅占cpu时间,同时我估计这个函数内部使用的是不稳定的排序,所以还是会乱,直接把标签写到by=后面的list中即可。
- 再有,默认是返回值而不是原地修改,如果需要直接修改,可以设置
inplace=True
。同时,还有ascending,设置False则降序,反之为升序。