我试图使用Python来显示一个电子表格中两列的单元格中的值与另一个电子表格中两列的值之间的差异。
要求如下:在Example1.xlsx中,对于Col 1 =“A”中的所有值,将Col 2中的值与Example2.xlsx中的行进行比较,其中Col 1 =“A”且Col 2与Example1.xlsx中的相应值不匹配
我能够让pandas匹配一列,但不确定如何让它匹配两列。
Example1.xlsx
Col1 Col2 Col3 Col4
A 1 abc def
B 1 abc xyz
A 9 def uvw
字符串
Example2.xlsx
Col1 Col2 Col3 Col4
A 1 jkj kjk
X 9 jka abc
型
结果:
A 9 def uvw (since in Example1.xlsx Col1=A and Col2=9 but there is no corresponding set of values in Example2.xlsx)
型
到目前为止,我尝试了:
import pandas as pd
df1=pd.read_excel("Example1.xlsx)
df2=pd.read_excel("Example2.xlsx)
df1\['Col1'.values + df1\['Col2'\].values != df2\['Col1'.values + df2\['Col2'\].values
型
但我得到一个错误,“+”在这里无效
任何建议将不胜感激!
1条答案
按热度按时间bz4sfanl1#
选项一:
您可以在'Col1'和'Col2'上执行左合并,然后根据第二个 Dataframe 的列中具有NaN的行(表示未找到匹配项)筛选结果:
字符串
选项二:
在两个数据框架中创建一个新列,该列是“Col1”和“Col2”值的组合。这将允许您根据这些组合值比较两个 Dataframe 之间的行。然后,您可以根据df2中不存在的组合值过滤df1。
型