python - 有大量数据时如何让代码运行得更快
问题描述
我有大约 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')
解决方案
看到您的代码后,似乎 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')
试试这个,我相信它会减少执行时间
推荐阅读
- cakephp - CakePHP 4.1 用户实体作为授权身份相关字段
- xml - xmlpath 和一个或多个 xmlstarlet 命令,用于根据重复父元素的实例编辑 XML 子元素值
- whoosh - 带有字段过滤器的多字段搜索嗖嗖声
- java - 从 S3 下载 Thymeleaf 模板
- javascript - 减少方法不清楚
- android - Jackson 未能反序列化 Kotlin 类
- mongodb - Mongodb:使用字段作为对象数组进行查找
- javascript - 如何使用 puppeteer 下载当前页面的 pdf
- c# - 如何在 Blazor 服务器端应用程序中从本地 Active Directory 实施身份验证?
- c# - 自动完成(字符串和整数)的一个时髦的东西