Python 加速np.arange(1100)下的数值求和

Python 加速np.arange(1100)下的数值求和,python,numpy,pandas,Python,Numpy,Pandas,我在一系列数字中循环,然后在一系列小于或等于每个范围成员的数字中计数: 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 在我看来,您的代码生成了一个带有一

我在一系列数字中循环,然后在一系列小于或等于每个范围成员的数字中计数:

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

在我看来,您的代码生成了一个带有一列“FILLS”的dataframe df_结果,然后被覆盖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
min\u赔率范围=np.arange(1.01,2.0,0.01)
df_result=pd.DataFrame(列=['填充'],索引=最小赔率范围)

df_result['FILLS']=my_stats['PRICE']听起来您可以使用
numpy.searchsorted
,但从您的代码中,不清楚您到底想做什么1)循环不起作用2)在第二个代码中,变量名称不同。如果您可以提供非常小的示例输入和输出,这也会非常有用。
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