Python可以很好地完成预处理任务,本文对python常用的numpy & pandas做一些总结。
1. 文本读写
python本身就带有open()函数,配合readline()/write()函数可以完成读写功能。但注意pandas也有很强大的读写能力,包括函数
read_csv()
to_csv()
read_excel()
to_excel()。
这里提一点:read_csv()函数可以指定index,column name,encoding type,header等等。作者曾经遇到过一个比较strange的问题,read_csv()与read_excel()的不同。比如,读入的第一列是c1,c2,c3,...cn。但是read_csv()的c1前面却带了一个未知符号`,即显示成了`c1。当时调了半天都没有明白这个`是怎么产生的,不知道哪位大神能够解答。最后无奈用read_excel()才解决。
python还有一个叫codecs的模块,可以很好的解决decode与encode的问题,它可以在读入时就选择相应的coding方式。
2. 数据处理
这一部分要说的内容就太多了,先来简单区分一下numpy和pandas。简单说,pandas是基于numpy的,numpy可以定义array和dataframe,pandas中可以定义dataframe和series。(可能不是很准确)
之前提到的文本读写,pandas可以直接将内容读成dataframe或series的形式。同时dataframe和series也可以由list或dictionary生成。这里我的理解是dictionary就是带有列名的list。
dataframe有一个函数是astype(),可以修改元素类型。这里要注意一点