【发布时间】:2021-09-14 20:40:37
【问题描述】:
我有两个数据框 df1 和 df2。
df1:
id val
1 25
2 40
3 78
df2:
id val
2 8
1 5
现在我想做类似df1['val'] = df1['val']/df2['val'] 的事情来匹配id。我可以通过遍历所有df2 行来做到这一点,因为df2 是df1 的一个子集,所以它可能会丢失一些我希望保持不变的值。这就是我现在拥有的:
for row in df2.iterrows():
df1.loc[df1['id']==row[1]['id'], 'val'] /= row[1]['val']
df1:
id val
1 5
2 5
3 78
如何在不使用 for 循环来提高速度的情况下达到同样的效果?
【问题讨论】: