как удалить дубликаты и фрейм данных dcast pandas со значениями, разделенными запятыми - PullRequest
0 голосов
/ 18 октября 2018

У меня есть следующий информационный кадр в пандах

  tank      nozzle
  1         1
  1         1
  1         2
  1         3
  1         1
  2         2
  2         1
  2         1
  2         2
  2         2
  2         1
  2         3
  2         2

Я хочу следующий вывод

  tank      nozzle
  1         1,2,3
  2         1,2,3  

Сопло должно быть уникальным.Как я могу сделать это в пандах?

1 Ответ

0 голосов
/ 18 октября 2018

Преобразовать столбец nozzle в строки, drop_duplicates и использовать GroupBy.apply с join:

df['nozzle'] = df['nozzle'].astype(str)
df1 = df.drop_duplicates().groupby('tank')['nozzle'].apply(','.join).reset_index()
print (df1)
   tank nozzle
0     1  1,2,3
1     2  2,1,3

Альтернативное решение с лямбда-функцией:

df1 = (df.drop_duplicates()
       .groupby('tank')['nozzle']
       .apply(lambda x: ','.join(x.astype(str)))
       .reset_index())

Для списков:

df1 = df.drop_duplicates().groupby('tank')['nozzle'].apply(list).reset_index()
print (df)
   tank     nozzle
0     1  [1, 2, 3]
1     2  [2, 1, 3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...