连接两个具有相同索引但位于不同位置的pandas数据帧

时间:2015-07-01 12:26:48

标签: python pandas

我有一个像

这样的数据框
id    value_right    color_right     value_left   color_left
1      asd           red              dfs         blue
2      dfs           blue             afd         green
3      ccd           yellow           asd         blue
4      hty           red              hrr         red

我需要将左侧值设置为正确的值,例如

id    value          color
1      asd           red        
1      dfs           blue
2      dfs           blue
2      afd           green
3      ccd           yellow
3      asd           blue
4      hty           red
4      hrr           red

我尝试拆分两个数据帧并使用id进行交错,但我只使用了id值的mod获得了一半的数据。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

查看所需的左侧和右侧dfs,然后查看rename列,然后点concatsort点' id'柱:

In [205]:
left = df[['id','value_left','color_left']].rename(columns={'value_left':'value','color_left':'color'})
right = df[['id','value_right','color_right']].rename(columns={'value_right':'value','color_right':'color'})
merged = pd.concat([right,left]).sort('id')
merged

Out[205]:
   id value   color
0   1   asd     red
0   1   dfs    blue
1   2   dfs    blue
1   2   afd   green
2   3   ccd  yellow
2   3   asd    blue
3   4   hty     red
3   4   hrr     red