比较列并在mysql(或)python pandas中生成重复的行

rak*_*esh 1 python mysql union pandas

我是 Mysql 的新手,刚刚开始了解一些基本概念。我一直在努力解决这个问题。任何帮助表示赞赏。

我有一个有两个电话号码的用户列表。如果两列中的数据不同,我想比较两列(电话号码)并生成一个新行,否则保留该行并且不做任何更改。

处理后的数据看起来像第二个表。

有什么办法可以在 MySql 中实现这一点。我也不介意在数据框中进行转换然后加载到表中。

   id  username  primary_phone  landline
    1      John            222       222
    2   Michael            123       121
    3      lucy            456       456
    4  Anderson            900       901
Run Code Online (Sandbox Code Playgroud)

加工后

谢谢!!!

jez*_*ael 5

使用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
Run Code Online (Sandbox Code Playgroud)