web-dev-qa-db-fra.com

Lignes dupliquées lors de la fusion de trames de données dans python

Je fusionne actuellement 2 cadres de données avec une jointure externe, mais après la fusion, je vois que toutes les lignes sont dupliquées même lorsque les colonnes sur lesquelles j'ai effectué la fusion contiennent les mêmes valeurs. En détail:

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')

avec l'entrée et les résultats suivants:

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

Ma question est, ne devrait-il pas en être ainsi?

merged_list (comment j'aimerais que ce soit: 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

Comment puis-je faire en sorte que ça devienne comme ça? Merci beaucoup pour votre aide!

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

enter image description here

Les lignes en double sont attendues. Chaque john smith dans list_1 correspond à chaque john smith dans list_2. J'ai dû déposer les doublons dans l'une des listes. J'ai choisi list_2.

18
piRSquared