小编Ter*_*ryH的帖子

在 Python 中的列表中混洗列表的有效方法

好像以前应该问过的问题,但是我找不到。所以就到这里了。

数据:
-list子列表的主(长度 ~= 16,000,000)(每个长度最多 500 个项目)str

目标:
- 有效地打乱主列表中的每个子列表。

我已经尝试了直for-loop,列表理解,熊猫Series.apply()pandaralleldask数据帧.apply().map_partition()方法。

一个for循环大约需要15 分钟
pd.series.apply(), dask.series.apply(), 和dask.series.map_partition()所有人都设法做到了6 分钟多一点

我的问题是“我可以更快地实现改组吗”?制作新副本或原地改组都是可以接受的。

以下是我的尝试:

def normal_shuffle(series):
    output = series.tolist()
    length = len(output)
    for i in range(length):
        random.Random().shuffle(output[i])
    return output

def shuffle_returned(a_list):
    new_list = a_list
    random.shuffle(new_list)
    return new_list

def shuffle_partition(a_partition):
    return a_partition.apply(shuffle_returned)

%time shuffled_for = normal_shuffle(test_series)
%time shuffled_apply = test_series.apply(shuffle_returned)

pandarallel.initialize(progress_bar=False, …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing shuffle list pandas

7
推荐指数
1
解决办法
374
查看次数

标签 统计

list ×1

pandas ×1

parallel-processing ×1

python ×1

shuffle ×1