将pandas数据框行分配给Dask数据框分区

时间:2019-10-16 15:41:20

标签: python pandas dataframe dask

假设一个带有X分区的dask数据框。假设熊猫数据框具有相同的X行数。熊猫数据框的每一行都包含与dask数据框的每个分区相关的数据。

我想将每个 pandas df行分配给新的黄昏数据框分区列

import pandas as pd
import dask
imoprt numpy as np

# default dask dataframe with 30 partitions
ddf = dask.datasets.timeseries()

df0 = pd.DataFrame({'A': np.random.randint(0,100, size=30),
                   'B': np.random.randint(0,100, size=30)})

执行此操作的效率很低的方法是:

df_list = []
for n in range(ddf.npartitions):
    df_list.append(ddf.partitions[n])

for i,df in enumerate(df_list):
    df['A'] = df0['A'].iloc[i]

我如何才能达到相同的结果,但仍处于呆滞状态?也许可以使用map_partitions?

如果不可能,如何更有效地避免循环?

1 个答案:

答案 0 :(得分:0)

您的for循环仅取决于分区的数量,分区的数量通常很小(小于10000),因此效率在这里不太可能成为问题。