gpt4 book ai didi

python - 使用 Python 将 .csv 文件分成 block

转载 作者:行者123 更新时间:2023-11-28 20:19:59 24 4
gpt4 key购买 nike

我有一个超过 300 GB 的大型 .csv 文件。我想将它分成每个 100,000,000 行的较小文件(每行大约有 55-60 字节)。

我写了下面的代码:

import pandas as pd
df = pd.read_csv('/path/to/really/big.csv',header=None,chunksize=100000000)
count = 1
for chunk in df:
name = '/output/to/this/directory/file_%s.csv' %s count
chunk.to_csv(name,header=None,index=None)
print(count)
count+=1

这段代码工作正常,我的磁盘上有足够的内存来一次存储大约 5.5-6 GB,但它

有没有更好的办法?

编辑

我编写了以下迭代解决方案:

with open('/path/to/really/big.csv', 'r') as csvfile:
read_rows = csv.reader(csvfile)
file_count = 1
row_count = 1
f = open('/output/to/this/directory/file_%s.csv' %s count,'w')
for row in read_rows:
f.write(''.join(row))
row_count+=1
if row_count % 100000000 == 0:
f.close()
file_count += 1
f = open('/output/to/this/directory/file_%s.csv' %s count,'w')

编辑 2

我想提请注意 Vor 关于使用 Unix/Linux 拆分命令的评论,这是我找到的最快的解决方案。

最佳答案

在 Unix/Linux 中有一个现成的工具。

split -l 100000 -d source destination

将为 block 的目标前缀添加两位数字后缀。

关于python - 使用 Python 将 .csv 文件分成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32743051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com