сравнивать столбцы и генерировать повторяющиеся строки в mysql (или) python pandas - PullRequest
2 голосов
/ 31 марта 2020

Я новичок в Mysql и только начинаю с некоторых базовых c концепций. Я пытался решить это некоторое время сейчас. любая помощь приветствуется.

У меня есть список пользователей с двумя номерами телефонов. Я хотел бы сравнить два столбца (номера телефонов) и создать новую строку, если данные отличаются в обоих столбцах, иначе сохранить строку и не вносить изменений.

Обработанные данные будут выглядеть как вторая таблица.

Есть ли способ добиться этого в MySql. я также не против сделать преобразование в кадре данных и затем загрузить в таблицу.

   id  username  primary_phone  landline
    1      John            222       222
    2   Michael            123       121
    3      lucy            456       456
    4  Anderson            900       901

after processing

Спасибо !!!

1 Ответ

5 голосов
/ 31 марта 2020

Используйте DataFrame.melt со столбцом удаления variable и DataFrame.drop_duplicates:

df = (df.melt(['id','username'], value_name='phone')
        .drop('variable', axis=1)
        .drop_duplicates()
        .sort_values('id'))
print (df)
   id  username  phone
0   1      John    222
1   2   Michael    123
5   2   Michael    121
2   3      lucy    456
3   4  Anderson    900
7   4  Anderson    901
...