2017-01-26 2 views
0

J'ai 2 fichiers (un. Csv et un. Xls). Les .csv ont seulement une colonne (e-mail). Les .xls ont beaucoup de colonnes. J'essaie de comparer les colonnes de courrier électronique dans ces deux fichiers et de supprimer de l'adresse de messagerie .xls pas dans .csv. Les adresses mails ne sont pas triées.Panda comparer et supprimer des données de csv et xls

J'ai écrire un code mais je n'atteindre mon objectif:

excel = pd.read_excel(file, skiprow=10, parse_cols = 'AL') 
csv = pd.read_csv(namelist_file) 
excel_keep = excel[excel.isin(csv)] 
mask = excel.isin(csv.tolist()) 
excel[~mask] 
print(excel_keep) 

Avez-vous une idée s'il vous plaît? Cordialement.

Répondre

1
df_csv = pd.read_csv(path_to_csv) 
df_xlsx = pd.read_excel(path_to_excel) 

## assuming column header for email in both files is 'email' 
## if not change it by df = df.rename(columns={'oldName': 'email'}) 

df_xlsx = df_xlsx[df_xlsx['email'].isin(df_csv['email'])] 

espoir qui aide

+0

Ok, ne sélectionner ce que je veux vous remercier beaucoup. – Oyabi

+0

Comment puis-je supprimer toutes les lignes qui ne contiennent pas d'adresse e-mail du csv? – Oyabi

+0

si elles sont null à l'intérieur vous pouvez df = df [df ['email']. Isnull() == Faux], espérons que cela aide, si le problème a été résolu, pls marque bonne réponse :) – epattaro