任何方式更快的Python For循环

时间:2018-04-05 12:57:45

标签: python pandas for-loop dataframe

任何人都可以告诉我,如果下面的for循环可以调整得更快。下面的for循环在几乎20万行的电子表格上运行,计算大约需要22个小时。任何帮助将不胜感激。

因此,我的初始电子表格中有两列以绿色突出显示。

我的代码工作是根据下面代码中的条件填写黄色的所有其他列。

我的初始电子表格:

My initial spreadsheet :

我的代码(Sample只填充一列):

for i in range(0,len(rolling)):

    # Fill in the 3 Month OT
    rolling.iloc[i,9]=sum(rolling.fSM_OT[(rolling['PERIOD_DATE'].isin(pd.date_range(rolling.BO3M[i], rolling.PERIOD_DATE[i]))) &
    (rolling['CUSTOMER_ID']==rolling.CUSTOMER_ID[i]) &
      (rolling['SUPPLIER_ID']==rolling.SUPPLIER_ID[i]) 
         & (rolling['SUPPLIER_LOCATION_ID']==rolling.SUPPLIER_LOCATION_ID[i])])

1 个答案:

答案 0 :(得分:1)

是的,降低到最小的复杂度然后优化为@jpp评论。

看看这个,用Python快速完成这样的事情的好方法。 http://chriskiehl.com/article/parallelism-in-one-line/