如何从大块创建数据框

时间:2019-01-13 10:39:37

标签: python python-3.x pandas dataframe

我有一个巨大的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

2 个答案:

答案 0 :(得分:0)

使用-

for chunk in dannie:
    chunk.to_csv('{}.csv'.format(lol))
    lol+=1

Read here了解更多信息

答案 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)