我正在循环访问一系列数字,然后计算一系列小于或等于每个范围成员的内容:
min_odds_range = np.arange( 1.01, 2.0, 0.01 )
df_result = pd.DataFrame( columns=[ 'FILLS' ], index=min_odds_range )
for mo in min_odds_range:
df_result[ 'FILLS' ] = my_stats[ 'PRICE' ]<=mo
循环代码是我的程序中最慢的部分。
怎样才能加快速度?我尝试过使用下面的代码进行广播,但它给了我一个 NotImplemented 异常:
runner_stats[ 'MIN_ODDS' ].lt( pd.DataFrame( np.arange( 1.0, 2.0, 0.1 ) ) )
最佳答案
在我看来,您的代码生成了一个数据帧 df_result,其中有一列“FILLS”,然后该列被覆盖 10 次。只有 for 循环的最后一次迭代才真正对数据集执行任何操作。
这段代码将做同样的事情,但没有循环。我很确定你在逻辑上遗漏了一些东西。
min_odds_range = np.arange( 1.01, 2.0, 0.01 )
df_result = pd.DataFrame( columns=[ 'FILLS' ], index=min_odds_range )
df_result[ 'FILLS' ] = my_stats[ 'PRICE' ] <= 2.0
如果您能为 my_stats 提供一些示例数据并告诉我们您的目标是什么,那么我们会更容易为您提供帮助。
关于python - 加快 np.arange( 1,100) 下值的求和速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26113894/