python—如何提高代码的速度效率

5tmbdcev  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(501)

假设我们有一个pickle文件,名为 pickle_list.pkl 其中包含23个 Dataframe 。也 df_combined 是所有这些 Dataframe 的串联。假设 df_combined(1000000, 5000) . 有没有更有效的方法来运行下面的代码块?也许某种类型的并行化可以工作?
现在它在69000排,已经运行了一天。

import pickle
import pandas as pd
df_list = pd.read_pickle(r'pickle_list.pkl')
df_combined = pd.concat(df_list, ignore_index=True)

for row in df_combined.itertuples():
    print(row.Index)
    id = row.id
    df_test= df_combined[df_combined['id']==str(id)]
eiee3dmh

eiee3dmh1#

你可以用 groupby 高效地创建字典,然后使用它快速获取所需的标识符。下面是一个未经测试的示例来说明这一想法:

import pickle
import pandas as pd
df_list = pd.read_pickle(r'pickle_list.pkl')
df_combined = pd.concat(df_list, ignore_index=True)

all_groups = {ident:df for ident,df in df_combined.groupby('id')}

for row in df_combined.itertuples():
    id = row.id
    # You may need to add a condition before if the searched ID does not exist
    df_test = all_groups[str(id)]

相关问题