我有一个像
这样的数据框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获得了一半的数据。有什么想法吗?
答案 0 :(得分:2)
查看所需的左侧和右侧dfs,然后查看rename
列,然后点concat
,sort
点' 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