首页 > 解决方案 > 有大量数据时如何让代码运行得更快

问题描述

我有大约 1000000 行的数据,其中大约有 500 个 ID。我需要根据不同文本文件中的 id 保存数据。最初的 id 有 ':' 所以在保存 txt 文件时必须用 '_' 替换那些。现在 python 代码需要 4-5 天才能完成分离这些并保存在单独的文件中。我怎样才能加快速度。

数据将是这样的:

     ID      Value
0    AB:1     2
1    BC:1     0
2    BC:1     1
-----------
-----------
1000000 AB:2  4

the code:

for i in df.ID:
     subID = df[df['ID'] == i]  
     fName = i.replace(':','_')
     fName = fName.replace('/','_')
     file_directory = r'C:\------' %fileName
     np.savetxt(file_directory, subID.values, fmt = '%s', delimiter='\t')

标签: pythonpandasnumpy

解决方案


看到您的代码后,似乎 ID 有重复项,但在循环中,您正在循环所有 ID 而不删除重复项

uq_ids =list(df['ID']).unique())
for i in uq_ids:
    subID = dfdf['ID'] == i] 
    fName = i.replace(':','_')
    fName = fName.replace('/','_')
    file_directory = r'C:\------' %fileName
    np.savetxt(file_directory, subID.values, fmt = '%s', delimiter='\t')

试试这个,我相信它会减少执行时间


推荐阅读