关于编码
当用read_csv()函数读取一个2G的CSV文件时出现以下错误:
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb2 in position 0: invalid start byte
对于小文件而言,解决方法是用记事本打开,然后在另存为的对话框中选择编码utf-8,但是2G的文件记事本,excel(差不多只能打开单表格记录数最多104万左右)打不开,在尝试了sublime,notepad++,editplus,PilotEdit未果之后,发现UltraEdit和EmEditor
都可以秒开大文件,但是前者编码转换后仍旧不能读取,后者成功转换并被read_csv读取。
另外可能的解决思路有:
用文本分割器分割成较小的文件
文件命名及转义
当生成文件时出现以下错误:
OSError: [Errno 22] Invalid argument: ‘D:\sublime_text\datas(1)\test.csv’
原因是 在文件路径中,\test 中的\t会被当成制表符处理,解决方法是换个文件名或者在路径中用 \test.csv
关于Dataframe中mean的速度问题
直接用Dataframe().mean()函数求每列的平均值的话,当列数比较多的时候,速度特别慢,19万条记录,70列处理了半小时没出结果,当用Dataframe()._get_numeric_data().mean()时,几秒钟就跑完了,因为不用_get_numeric_data()的话,