我有一个非常简单的循环,只是花很长时间才能遍历我的大数据框。
value = df.at[n,'column_A']
for y in range(0,len(df)):
index=df[column_B.ge(value_needed)].index[y]
if index_high > n:
break
有了这个,我试图找到第一个索引,该索引的值大于value_needed。问题在于,当len(df)> 200000
时,此循环太无意义而无法运行关于如何解决此问题的任何想法?
答案 0 :(得分:1)
通常,您应该尝试避免与熊猫循环,这是一种获取所需内容的矢量化方法:
df.loc[(df['column_B'].ge(value_needed)) & (df.index > n)].index[0]
答案 1 :(得分:1)
我希望您有示例数据。在您的数据上尝试一下,让我知道您得到了
import numpy as np
index = np.where(df[column_B] > value_needed)[0].flat[0]
然后
#continue with other logic