python---之pandas大数据读写

转载:http://cloga.info/python/2016/08/24/pandas-big-data-tips

近期的工作和Hive SQL打交道比较多,偶尔遇到一些SQL不好解决的问题,会将文件下载下来用pandas来处理,由于数据量比较大,因此有一些相关的经验可以和大家分享。

大文本数据的读写

有时候我们会拿到一些很大的文本文件,完整读入内存,读入的过程会很慢,甚至可能无法读入内存,或者可以读入内存,但是没法进行进一步的计算,这个时候如果我们不是要进行很复杂的运算,可以使用read_csv提供的chunksize或者iterator参数,来部分读入文件,处理完之后再通过to_csv的mode=’a’,将每部分结果逐步写入文件。

注:如果想写入行一定要将numpy数组转为2维,有行有列,如果你的numpy只有列,那么每次一存就只能存为列


import pandas as pd

input = pd.read_csv('input.csv', chunksize=1000000)

for i in input:
	chunk = dosomethig(input)# 进行一些操作
	chunk.to_csv('output.csv', mode='a', header=False) # 记得使用header=False不然会重复写入列名

input = pd.read_csv('input.csv', iterator=True)

while loop:
    try:
        chunk = reader.get_chunk(1000000)
        chunk.to_csv('output.csv', mode='a', header=False) # 和上面的代码作用一样只是通过iterator来实现
    except StopIteration:
        break

猜你喜欢

转载自blog.csdn.net/zxyhhjs2017/article/details/82858022