合并两个镜像Pandas列

时间:2018-05-29 09:28:57

标签: python pandas

我需要能够合并两个镜像'镜像'相互之间,创建一个新列,其中包含来自' dest'在' A'的情况下和' src'在' B'

的情况下

我目前有:

src    dest    type     time
  1       2       A       76
  1       3       A      176
  1       4       A      276
  1       5       A      376
  2       1       B      211
  3       1       B      321
  4       1       B      422
  5       1       B      523

需要将其转换为:

 id    type    time
  2       A      76
  2       B     211
  3       A     176
  3       B     311
  4       A     276
  4       B     411
  5       A     376
  5       B     511

我原本以为我需要使用pivot_table(),但我不认为这会在这种情况下起作用......

1 个答案:

答案 0 :(得分:1)

numpy.wheresort_values一起使用,最后删除不必要的列:

注意 - 2种类型的解决方案 - AB

df['id'] = np.where(df['type'] == 'B', df['src'], df['dest'])
df = df.sort_values(['id','type']).drop(['src','dest'], 1)
print (df)
  type  time  id
0    A    76   2
4    B   211   2
1    A   176   3
5    B   321   3
2    A   276   4
6    B   422   4
3    A   376   5
7    B   523   5