我在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的行。
答案 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
)