1. 普通文件读取方式:

import pandas as pd
df = pd.read_csv('./chunk_test.csv') # 默认 iterator=False,chunksize=None
print(df.shape,'\n',df.head())

一般使用read_csv的时候,iterator是设定为False的,这个时候read_csv会把整个文件的数据读取到DataFrame中,这样就会很吃内存。而当iterator被设置成True的时候,read_csv就会迭代读取数据,而不会一次性读取。这样就会返回一个TextFileReader的迭代器。

2. 大数据文本读取方式

# chunk 读取方式一  
reader = pd.read_csv('./chunk_test.csv', iterator=True)
chunksize=1000
chunk = reader.get_chunk(chunksize)  # 获取前1000条数据
print(chunk.shape,'\n',chunk.head(5))
# chunk 读取方式二    
reader = pd.read_csv('./chunk_test.csv', iterator=True, chunksize=1000) # 每1000条数据为一个chunk
for chunk in reader:
    print(chunk.shape,'\n',chunk.head(5))
    break

返回的reader是TextFileReader类型,它指向若干个chunk位置,只在访问数据的时候才真正把数据读入到内存。

这是一个可迭代的类型,采用for in的形式,即可逐个访问chunk。每个chunk都是dataframe类型的。

共有三种情况

iterator=False  将整个文件读入内存

iterator=True   chunksize=None   需要采用 chunk = reader.get_chunk(chunksize)  获取指定数量的数据 并返回一个dataframe

iterator=True   chunksize=1000   需要采用 for chunk in reader:  迭代获取dataframe 每个dataframe的行数为1000

Python chunk读取超大文件 https://blog.csdn.net/w55100/article/details/90111254

Python如何读取、拆分大文件 https://www.jianshu.com/p/f935673ef524

pandas.read_csv参数整理 https://www.cnblogs.com/datablog/p/6127000.html

1. 普通文件读取方式:import pandas as pddf = pd.read_csv('./chunk_test.csv') # 默认 iterator=False,chunksize=Noneprint(df.shape,'\n',df.head())一般使用read_csv的时候,iterator是设定为False的,这个时候read_csv会把整个文件的数据读取到Da... 要读取一个类文件对象的数据,你需要重复调用 read() 方法,然后正确的解码获得的数据。 下面是一个C扩展函数例子,仅仅只是读取一个类文件对象中的所有数据并将其输出到标准输出: #define CHUNK_SIZE 8192 /* Consume a "file-like" object and write bytes to stdout */ static PyObject *py_consume_file(PyObject *self, PyObject *args) 一个Python模块,用于分块处理文本文件读取和写入。 达到指定的块大小时自动创建文件。 它提供了io.TextIOBase的熟悉界面,可轻松与现有的python IO设施集成。 pip install chunky 块基于指定的模式创建文件。 对于第一个文件,占位符'{0}'以'0'开头,并且每当行数达到指定的块大小时,占位符就会增加。 下面的示例创建3个文件,其名称为: a_file_0.txt-10行 a_file_1.txt-10行 a_file_2.txt-5行 import chunky fileobj = chunky . open ( "a_file_{0}.txt" , "w" , chunk_size = 10 ) for i in range ( 0 , 25 ): fileobj . write ( "%d \n " a = torch.randn(2,3) b = a.unsqueeze(2).unsqueeze(3) c,d = b.chunk(2,1) #chunk(a,b),a表示分成的块数,b=0沿横向分割,b=1沿纵向分割 print(a) print(',,,,,,,,,,,,,') print(b.shape) #[2,3,1,1] print(b) print('.... pandas的chunk分块读取 read_chunks = pd.read_csv(csv_path, encoding='utf-8', iterator=True, chunksize=65535) 参数说明: #调查日期 today = datetime.date.today() searchdate = datetime.datetime.strftime(today, "%Y-%m-%d") path = r'C... print(chunk.tail(10)) 以上这篇python读取几个G的csv文件方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:python读csv文件时指定行为表头或无表头的方法Python把对应格 import pandas as pd f = open('E:/学习相关/Python/数据样例/用户侧数据/test数据.csv') reader = pd.read_csv(f, sep=',', iterator=True) loop = True chunkSize = 100000 chunks = [] while loop: chunk = reader.get_chunk(chunkSize) chunks.append(chunk) except StopIteration: 集算器是强大的数据计算引擎,但目前对于机器学习算法的提供还不够丰富。而 python 中有许多此类算法。借助 YM 外部库,就可以让集算器 SPL 调用 python 写的代码,从而弥补这一不足。 下面具体说明: 1.SPL 与 python 环境配置2.python 模块开发规范要求3.ym_exe...
可以使用pandas库中的read_csv函数来读取500兆的csv文件。可以使用chunksize参数来分块读取文件,以避免内存不足的问题。以下是示例代码: import pandas as pd chunksize = 10 ** 6 # 每次读取100万行数据 for chunk in pd.read_csv('file.csv', chunksize=chunksize): # 处理每个数据块 注意,这个方法可能会比较慢,因为需要逐行读取文件。如果需要更快的读取速度,可以考虑使用其他的数据处理工具,比如Apache Spark。