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。