如果两个都有值,如何编写python脚本来读取两个excel工作表并删除其中的任何重复?

时间:2016-08-22 01:51:02

标签: python excel pandas dataframe

我在Excel中有2个工作表。它们都包含3列a,b和c。如果两个工作表中列a,b,c的数据项相同,我需要删除工作表1中的任何行。我如何使用Pandas python库?

import pandas as pd
ws1 = pd.read_excel(pathname/worksheet1.xlsx)
ws2 = pd.read_excel(pathname/worksheet2.xlsx) 

基本上worksheet1看起来像这样(虚拟数字假设它们在实际数据中有所不同):

a   b   c   d   e   f
1   2   3   4   4   4
1   2   3   4   4   4
1   2   3   4   4   4
1   2   3   4   4   4
1   2   3   4   4   4

worksheet2看起来像这样:

a   b   f   d   e   c
1   2   4   4   4   3
1   2   4   4   4   3
1   2   4   4   4   3
1   2   4   4   4   3
1   2   4   4   4   3

我必须检查worksheet1中的a,b和c列,如果worksheet2中显示相同的数据,我会删除worksheet1中的该行。

例如,在worksheet1中,为列a,b和c返回值1,2和3。我需要检查1,2和3是否显示在worksheet2中的列a,b和c中(位置不同)。如果它们确实显示在worksheet2中,我需要删除worksheet1中值为1,2和3的行。

1 个答案:

答案 0 :(得分:2)

试试这个(假设工作表list1和list 2 - 两个独立的excel文件):

df1 = pd.read_excel('/path/to/file_name1.xlsx')
df2 = pd.read_excel('/path/to/file_name2.xlsx')

df1 = df1[~df1.email.isin(df2.email)]

第三行代码会从df1中删除df2中的那些行(假设两个DF中的列名都是email