我有一个具有以下值的 df1:
Vehicle1 Vehicle2 Vehicle3
0 0 0
1 3 2
0 0 4
NaN NaN 0
和带有值的 df2:
Index Coords
0 (-49.36204, -21.04797)
1 (-48.9062, -20.7399)
2 (-48.9132, -20.7296)
3 (-48.8955, -20.7329)
4 (-48.8065, -20.8147)
我想使用列 df['index'] 作为参考,将 df1 中的值替换为 df['Coords'] 中的值,所以我会得到这样的结果:
Vehicle1 Vehicle2 Vehicle3
(-49.36204,-21.04797) (-49.36204,-21.04797) (-49.36204,-21.04797)
(-48.9062,-20.7399) (-48.8955, -20.7329) (-48.9132, -20.7296)
(-49.36204,-21.04797) (-49.36204,-21.04797) (-48.8065, -20.8147)
NaN NaN (-49.36204,-21.04797)
答案 0 :(得分:0)
假设 Index
是 df2 中的一列,您可以使用 applymap
对 df1 的每个元素应用一个函数:
df1.applymap(lambda x: df2[df2['Index'] == int(x)].Coords.values[0], na_action='ignore')
结果:
Vehicle1 Vehicle2 Vehicle3
0 (-49.36204, -21.04797) (-49.36204, -21.04797) (-49.36204, -21.04797)
1 (-48.9062, -20.7399) (-48.8955, -20.7329) (-48.9132, -20.7296)
2 (-49.36204, -21.04797) (-49.36204, -21.04797) (-48.8065, -20.8147)
3 NaN NaN (-49.36204, -21.04797)