我有一个巨大的scv文件(6.3亿行),我的计算机无法在1个数据帧(内存不足)中读取它(之后我想教每个数据帧模型)。我做了630个块,并想创建每个块的数据帧(将是630个数据帧)。无法找到或不理解这种情况的解决方案。请有人支持我。我认为MB总体上是错误的,有人可以对这种情况发表新的看法。代码:
import os
import pandas as pd
lol=0
def load_csv():
path="D:\\mml\\"
csv_path = os.path.join(path,"eartquaqe_train.csv")
return pd.read_csv(csv_path,sep=',',chunksize=1000000)
dannie = load_csv()
for chunk in dannie:
lol=lol+1
print(lol)
630
答案 0 :(得分:0)
答案 1 :(得分:0)
使用pandas.read_csv()方法并指定 chunksize 参数,或使用 skiprows 在所有csv行上创建迭代器,例如:
import pandas as pd
path = 'D:\...'
a = list(range(0,6300))
for line in range(0,6300-630,630):
df = pd.read_csv(path,skiprows=a[0:line]+a[line+630:])
print(df)
OR
import pandas as pd
path = 'D:\...'
df = pd.read_csv(path,chunksize=6300)
for chunk in df:
print(chunk)