2017-01-26 3 views
0

私は2つのファイル(.csvと.xls)を持っています。 .csvには1つの列(電子メール)しかありません。 .xlsには多くの列があります。 これら2つのファイルの電子メール列を比較して、.cslsではなく.xlsメールアドレスから削除しようとしました。 メールアドレスはソートされていません。パンダはcsvとxlsからデータを比較して削除します

私はいくつかのコードを記述しているが、私は私の目標を達成しない:

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) 

は、あなたのアイデアをしてくださいがありますか?よろしくです。 よろしくお願いします。

答えて

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

私はどうもありがとうございました欲しいものだけを選択し

+0

[OK]を役に立てば幸い、。 – Oyabi

+0

csvから電子メールアドレスを含まない行をすべて削除するにはどうすればよいですか? – Oyabi

+0

あなたの中にnullがあれば、df = df [df ['email'] isnull()== False] – epattaro

関連する問題