Объединить две зеркальные колонны панд - PullRequest
0 голосов
/ 29 мая 2018

Мне нужно объединить два столбца, которые «зеркально отражают» друг друга, создав новый столбец, который содержит значение из «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 голосов
/ 29 мая 2018

Используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...