如何并行化循环熊猫以更改数据类型和调用其他功能

时间:2018-12-19 18:27:56

标签: python pandas multiprocessing

更改pandas数据框中某些列的数据类型是一个非常普遍的问题。如果不完全重写我的所有代码以使其与dask兼容,我想并行化代码中的一些for循环。

例如,我想更改特定列的数据类型,并且由于有700多个列需要更改,因此它可能会很慢。我已经看到许多有关使用multiprocessing并行化函数的问题,但是我还没有看到任何似乎可以加快代码速度的解决方案。

cont_vars = [...] # list of continuous variables
cat_vars = [...] # list of categorical variables

for col in cont_vars:
    df[col] = df[col].astype('float32')

for col in cat_vars:
    df[col] = df[col].astype('category').cat.as_ordered()

我也很难并行化一个调用函数的循环。例如:

for col in df[i for i in df.columns if i.startswith('Funnel')]:
    df = function1(df, col, 9, 1)

for col in [i for i in df.columns if i.endswith('Bracket')]:
    df = pd.merge_asof(df, function2(df[col], 19), left_index=True, right_index=True)

谢谢!

0 个答案:

没有答案