web-dev-qa-db-ja.com

pythonでデータフレームをマージするときに行が重複する

現在、2つのデータフレームを外部結合で結合していますが、結合後、結合した列に同じ値が含まれていても、すべての行が重複していることがわかります。詳細に:

list_1 = pd.read_csv('list_1.csv')
list_2 = pd.read_csv('list_2.csv')

merged_list = pd.merge(list_1 , list_2 , on=['email_address'], how='inner')

次の入力と結果:

list_1:

email_address, name, surname
[email protected], john, smith
[email protected], john, smith
[email protected], elvis, presley

list_2:

email_address, street, city
[email protected], street1, NY
[email protected], street1, NY
[email protected], street2, LA

merged_list:

email_address, name, surname, street, city
[email protected], john, smith, street1, NY
[email protected], john, smith, street1, NY
[email protected], john, smith, street1, NY
[email protected], john, smith, street1, NY
[email protected], elvis, presley, street2, LA
[email protected], elvis, presley, street2, LA

私の質問は、このようなものではないでしょうか?

merged_list(どのようにしたいのか:D):

email_address, name, surname, street, city
[email protected], john, smith, street1, NY
[email protected], john, smith, street1, NY
[email protected], elvis, presley, street2, LA

このようにするにはどうすればいいですか?ご協力ありがとうございました!

8
list_2_nodups = list_2.drop_duplicates()
pd.merge(list_1 , list_2_nodups , on=['email_address'])

enter image description here

重複行が予想されます。 list_1の各ジョンスミスは、list_2の各ジョンスミスと一致します。リストの1つに重複をドロップする必要がありました。 list_2を選択しました。

18
piRSquared