pythonで2つのリストの重複する要素の重複を無くしたうえで1つにする方法

   

pythonで2つのリスト[‘太郎’,’花子’,’ひろし’]と[‘ひろし’,’春子’,’夏子’]とがあったときに、重複する要素の重複を無くしたうえで2つのリストを合わせて1つにするにはどうすればよいでしょうか?listでやる方法はわかりませんが、ListをDictionaryに変換し、さらにDataFrameに変換してやると、drop_duplicates()というメソッドが使えます。

list1 = ['太郎','花子','ひろし']
list2 = ['ひろし','春子','夏子']

dic1 = { '名前' : list1 }
dic2 = { '名前' : list2 }

df1 = pd.DataFrame(dic1)
df2 = pd.DataFrame(dic2)

df3 = pd.concat([df1,df2]).drop_duplicates()

print(df1,'\n\n',df2,'\n\n',df3)

上のコードを実行した結果は、

名前
0 太郎
1 花子
2 ひろし

名前
0 ひろし
1 春子
2 夏子

名前
0 太郎
1 花子
2 ひろし
1 春子
2 夏子

となりました。

ちなみに、重複する部分を除去した残りのリストにするには、パラメータkeep=Falseをこのように指定してやります。

df3 = pd.concat([df1,df2]).drop_duplicates(keep=False)

するとdf3は、

  名前
0 太郎
1 花子
1 春子
2 夏子

と、重複する要素を除いたものになります。


 - Python勉強ノート