我需要能够合并两个镜像'镜像'相互之间,创建一个新列,其中包含来自' 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(),但我不认为这会在这种情况下起作用......
答案 0 :(得分:1)
将numpy.where
与sort_values
一起使用,最后删除不必要的列:
注意 - 2种类型的解决方案 - A
和B
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