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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值