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 | 夏子 |
と、重複する要素を除いたものになります。