使用pandas中其他数据框的值覆盖数据框中的值

问题描述:

我有两个数据框。一个与网站的坐标,另一个与他们之间的连接。 例如:使用pandas中其他数据框的值覆盖数据框中的值

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 

现在我想改变这一切值(所有列)在DF2与DF1坐标。 所需的输出:

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 .. 说实话,我没有太多想法,我尝试了转换成字典,或者在合并时覆盖,但没有什么一直工作到最后。

这里有一种方法,从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 
+0

替换值谢谢你,伙计:) – jovicbg