我有一个df包含大约 2.5 亿行(来自 10Gb CSV 文件)的 dask 数据框 ( )。我有另一个ndf25,000 行的Pandas 数据框 ( )。我想通过将每个项目重复 10,000 次,将 Pandas 数据框的第一列添加到 dask 数据框。
这是我尝试过的代码。我已将问题缩小到较小的范围。
import dask.dataframe as dd
import pandas as pd
import numpy as np
pd.DataFrame(np.random.rand(25000, 2)).to_csv("tempfile.csv")
df = dd.read_csv("tempfile.csv")
ndf = pd.DataFrame(np.random.randint(1000, 3500, size=2500))
df['Node'] = np.repeat(ndf[0], 10)
使用此代码,我最终遇到错误。
ValueError:并非所有分区都是已知的,无法对齐分区。请使用set_index来设置索引。
我可以执行 areset_index()后跟 aset_index()来制作df.known_divisions Truedask 数据框。但这是一项耗时的操作。有没有更好更快的方法来做我想做的事情?我可以使用熊猫本身来做到这一点吗?
最终目标是从ndf其中的任何相应行中找到df与某些条件匹配的行。
holdtom
牛魔王的故事
相关分类