使熊猫处理更快

时间:2020-06-10 05:19:50

标签: python python-3.x pandas multiprocessing

在垂直处理中,我正在对一个列上的一个dataframe与另外三个进行比较,我想知道是否可以使用更多的内核/使其更快? 我尝试了concurrent.futures.ProcessPoolExecutor(),但实际上慢了1秒... 这是我的代码

       # df_out is main DataFrame, hikari_data_df, kokyaku_data_df, hikanshou_data_df are DF to compare 
        m1 = df_out[self.col_name_].isin(hikari_data_df['phone_num1'])
        m2 = df_out[self.col_name_].isin(hikari_data_df['phone_num2'])
        # Add new column to df_out on place of matching m1 with df_out col
        df_out['new1'] = df_out[self.col_name_].where(m1)
        df_out['new2'] = df_out[self.col_name_].where(m2)

        m1 = df_out[self.col_name_].isin(kokyaku_data_df['phone_number1'])
        m2 = df_out[self.col_name_].isin(kokyaku_data_df['phone_number2'])
        df_out['new3'] = df_out[self.col_name_].where(m1)
        df_out['new4'] = df_out[self.col_name_].where(m2)

        m1 = df_out[self.col_name_].isin(hikanshou_data_df['phone_number'])
        df_out['new5'] = df_out[self.col_name_].where(m1)


        df_out.to_csv(sys.argv[1], index=False)

我希望这个过程更快!

1 个答案:

答案 0 :(得分:0)

首先,如果您的数据不大。尝试将“ isin” /“ where”功能转换为矢量操作,例如“ join / merge”。这将花费更多的内存,但速度更快。

第二,快点。但是,要小心。如果您的数据不够大。黄昏会变慢。