我有一个像这样的条件数据框,其中大约有 300 行
pd.DataFrame({"PERSONALNR":["000009461","000009461"],"PERIODE":["202401","202402"],"MANDANT":["LB","LB"],"DA":["01","01"]})
其中“PERSONALNR”和“PERIODE”是我需要满足的条件,并且需要在第二个数据框中替换值“MANDANT”和“DA”
我想要替换的数据框与此类似,其中约有 110k 行
pd.DataFrame({"PERSONALNR":["000009461","000009461"],"PERIODE":["202401","202402"],"MANDANT":["LB","LB"],"DA":["01","01"], "KSTBEZ":["Springer pool","bla bla"]})
我想到的解决方案如下:
for row in POOL.itertuples():
LA.loc[(LA.PERSONALNR==row.PERSONALNR)&(LA.PERIODE==row.PERIODE)&(LA.DA=="01")&(LA.KSTBEZ.str.contains("pool")),["MANDANT","DA"]]=[row.MANDANT,row.DA]
我的解决方案对于上面的数据框来说效果很好——大约需要 10 秒钟左右才能完成,但我需要在具有 100 万行的数据框中执行相同的操作——大约需要 10 分钟......
谁能想出更好的解决办法?