如何使用Python迭代地从大型.csv文件提取并保存.csv数据块?

时间:2019-09-04 17:55:15

标签: python pandas

我是Python的新手,我尝试使用熊猫读取大型.csv文件(包含数十万或几百万行;以及大约15.000列)。

我想我可以做的是在所有块中迭代地创建和保存每个块到新的.csv文件中。我目前使用的笔记本电脑内存相对有限(在升级过程中约为4 Gb),但我想知道是否可以在不更改设置的情况下做到这一点。另外,我可以在具有较大RAM的PC中传输此过程并尝试使用更大的块,但是即使是较短的行块,我也希望将其安装到位。

我看到我可以使用下面的代码快速处理数据块(例如10.000行和所有列)。但是由于我是Python初学者,所以我只设法订购了第一块。我想跨块迭代循环并保存它们。

import pandas as pd
import os

print(os.getcwd())
print(os.listdir(os.getcwd()))

chunksize = 10000

data = pd.read_csv('ukb35190.csv', chunksize=chunksize)

df = data.get_chunk(chunksize)

print(df)

export_csv1 = df.to_csv (r'/home/user/PycharmProjects/PROJECT/export_csv_1.csv', index = None, header=True)

1 个答案:

答案 0 :(得分:1)

如果您不对数据进行任何处理,那么您甚至不必将其存储在任何变量中。您可以直接进行处理。下面的PFA代码。希望对您有帮助。

import pandas as pd
import os

chunksize = 10000
batch=1

for chunk in pd.read_csv(r'ukb35190.csv',chunksize=chunk_size):
  chunk.to_csv(r'ukb35190.csv'+str(batch_no)+'.csv',index=False)
  batch_no+=1