我有两个数据帧。一个具有站点坐标,另一个具有它们之间的连接。 例如:
DF1:
SITE_ID LAT LON
101 23.4244 31.5356
102 45.0090 14.2424
103 35.3444 19.4242
104 42.0000 18.0002
DF2
SITE_ID FIRST SECOND THIRD
101 102 104 NaN
102 103 NaN NaN
103 104 NaN NaN
104 NaN NaN NaN
现在我想用df1中的坐标改变df2中的所有值(在所有列中)。 期望的输出:
SITE_ID FIRST SECOND THIRD
23.4244 31.5356 45.0090 14.2424 42.0000 18.0002 NaN
45.0090 14.2424 35.3444 19.4242 NaN NaN
35.3444 19.4242 42.0000 18.0002 NaN NaN
42.0000 18.0002 NaN NaN NaN
可以对这个白色逗号或列表进行一些修改。稍后我会将此转换为json并将其与javascript google maps api一起使用。 说实话,我没有太多的想法,我尝试过转换成字典,或者在合并时覆盖,但直到最后才真正有效。
答案 0 :(得分:3)
以这种方式,从df1
创建映射并替换df2
中的值
In [1120]: mapping = df1.set_index('SITE_ID').astype(str).apply(' '.join, axis=1).to_dict()
In [1121]: mapping
Out[1121]:
{101: '23.4244 31.5356',
102: '45.009 14.2424',
103: '35.3444 19.4242',
104: '42.0 18.0002'}
In [1122]: df2.replace(mapping)
Out[1122]:
SITE_ID FIRST SECOND THIRD
0 23.4244 31.5356 45.009 14.2424 42.0 18.0002 NaN
1 45.009 14.2424 35.3444 19.4242 NaN NaN
2 35.3444 19.4242 42.0 18.0002 NaN NaN
3 42.0 18.0002 NaN NaN NaN