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