gpt4 book ai didi

python - 连接两个大文件而不用 pandas 分块

转载 作者:行者123 更新时间:2023-12-01 00:51:25 26 4
gpt4 key购买 nike

我有带有“id,名称”的文件1和带有“id,地址”的文件2。我无法加载第一个文件(小于 2Gb):它在 76k 行(带有 block 连接)和只有 2 列后崩溃...我也无法在第二个文件上 read_csv,因为它在加载一些行后使内核崩溃。

我需要使用“id”连接 File1 和 File2,但如果我无法将文件放入数据帧变量中,我不知道该怎么做...

该文件只有 5Gb,有 30M 行,但加载几秒钟后内核就会崩溃。

如何在不使用数据帧的情况下加入文件?

我尝试过卡紧,但它崩溃了。

chunks = []
cols = [...]
for chunk in pd.read_csv("file2.csv", chunksize=500000, sep=',', error_bad_lines=False, low_memory=False, usecols=cols):
chunks.append(chunk)
df = pd.concat(chunks, axis=0)
print(f.shape)

我需要加载数据帧来加入它们,或者如果可能的话,在不加载的情况下加入文件

最佳答案

您逐 block 读取 df2,但由于您追加了所有 block ,因此生成的 block 与 file2 的大小相同。

如果您能够完全加载 df1,您可以做的就是像这样逐 block 加入 df2:

for chunk in pd.read_csv("file2.csv", chunksize=500000, sep=',', error_bad_lines=False, low_memory=False, usecols=cols):
df1.merge(chunk, on =['id'], how='left')

关于python - 连接两个大文件而不用 pandas 分块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56545634/

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