gpt4 book ai didi

python - 将大型Dask数据框与小 Pandas 数据框合并

转载 作者:行者123 更新时间:2023-12-01 07:45:18 25 4
gpt4 key购买 nike

下面的示例如下:YouTube: Dask-Pandas Dataframe Join我试图将〜70GB的Dask数据帧与〜24MB合并为 Pandas 数据帧加载。

合并位于两列A和B上,我没有设置任何索引:

import dask.dataframe as dd
from dask.diagnostics import ProgressBar

small_df = pd.read_csv(dataframe1) # as pandas
large_df = dd.read_csv(dataframe2) #as dask.dataframe

df2 = large_df.merge(small_df, how='left', left_on=leftcolumns, right_on=rightcolumns) #do the merge

A = df2[df2['some column'] == 'somevalue'] #do a reduction that would fit on my computer

pbar = ProgressBar()
pbar.register()

result = A.compute()

我正在使用具有16GB RAM和4核的Windows计算机。
我使用进度条来评估合并过程的进展。昨晚我整晚都离开了。我今天早上重新启动了它,到目前为止大约半小时,进度为0%。

谢谢,感谢您的帮助,

更新

我在配备8GB RAM的Mac上尝试了一下,效果很好。我相信Anaconda附带有Dask发行版。我认为我在任何情况下都没有做任何不同的事情。

我按照上述编码(21分钟)分享我的结果和时间:
In [26]: C = result1.compute()
[########################################] | 100% Completed | 21min 13.4s
[########################################] | 100% Completed | 21min 13.5s
[########################################] | 100% Completed | 21min 13.6s
[########################################] | 100% Completed | 21min 13.6s

更新2

我已在Windows计算机上将Dask更新为最新版本,并且运行良好。

最佳答案

您可以遍历唯一的相等值并使用循环分配其他列:

unioun_set = list(set(small_df['common_column']) & set(large_df['common_column']))
for el in union_set:
for column in small_df.columns:
if column not in large_df.columns:
large_df.loc[large_df['common_column'] == el,column] = small_df.loc[small_df['common_column'] == el,column]


关于python - 将大型Dask数据框与小 Pandas 数据框合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39470332/

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