【发布时间】:2019-11-21 21:35:04
【问题描述】:
Excel 中的 3 列原始数据(如屏幕截图)。该脚本是通过一个带有列的简单公式来计算结果。当结果达到限制时,它会打印结果。
import pandas as pd
df = pd.read_excel("C:\excel_file.xlsx", sheet_name = "Sheet1")
P1 = df['Period 1']
P2 = df['Period 2']
P3 = df['Period 3']
df['Predict'] = 12.5 + (0.35 * P1 + 0.5 * P2 + 0.8 * P3)
for index, row in df.iterrows():
if row['Predict'] >= 100:
print row['SKU and Product code']
问题:一个文件中有很多行,并且有 > 100k 个文件。现在完成 1 次运行大约需要 3 天。
计算和逻辑很简单。但是对于这种频繁的任务,数据量和文件数量都很大。
当原始数据中没有其他选项时(不减少行数和文件数)。我想知道 GPU 编程是否是缩短处理时间的一种选择。
我在 Google 上搜索,翻阅了一本书,发现 GPU 编程更适用于机器学习等高级任务。
如果可以在这种情况下使用 GPU 编程,上面的重写代码看起来如何?谢谢。
【问题讨论】:
-
“many rows”表示多少行?
-
@Sraw,感谢您的评论。每个文件的行数从 600 到 3500 不等。
-
嗯,我不认为真的有“很多”行。在这种情况下,我认为 GPU 不会真正帮助你。您应该首先监控您的 CPU 使用率,如果它较低,请先尝试使用
multiprocessing。 -
@Sraw,我现在将文件分组并有多个脚本执行类似的任务。 CPU 使用率已经 100%。
-
好吧,由于信息有限,我无法提供更多建议。但至少 GPU 不是你的救星。可能有很多原因,例如您的磁盘速度较慢,或者您应该考虑使用更快的 Excel 文件阅读器。见一些亲戚:stackoverflow.com/questions/50695778/…