0
我有一個熊貓數據框,名爲Visits2包含20M記錄。以下是來自Visits2的記錄樣本。通過數據幀迭代的優化方式
num srv_edt inpt_flag
000423733A 8/15/2016 N
001013135D 7/11/2016 N
001013135D 7/11/2016 N
001047851M 4/29/2016 N
001067291M 2/29/2016 Y
001067291M 8/3/2016 N
001067291M 8/3/2016 N
001067291M 9/4/2016 N
001070817A 5/25/2016 N
001070817A 5/25/2016 Y
001072424A 1/13/2016 N
001072424A 2/17/2016 Y
001072424A 3/21/2016 N
001072424A 3/21/2016 N
001072424A 5/10/2016 N
001072424A 6/6/2016 N
我執行下面的代碼,與N
,當srv_edt是組NUM的在第一次出現指定inpt_any。如果inpt_flag已經具有值Y
,則將inpt_flag分配給Y
。
這是運行良好,但考慮在20M的數量,它需要數小時才能運行。 有人請建議我優化循環數據框的方式。
prev_srv_edt = " "
for vv in Visits2.itertuples():
inpt_any = 'N'
if (prev_srv_edt != vv[1]):
prev_srv_edt = vv[1]
Visits2.loc[vv[0],'inpt_any'] = 'N'
if (vv[2] == 'Y'):
Visits2.loc[vv[0],'inpt_any'] = 'Y'
我曾嘗試與list(zip(visit['srv_edt'],visit['inpt_flag']))
,但我看到zip
同時服用大量的時間來運行。
什麼是您的輸出應該看起來像 – piRSquared