import pandas as pd
data = {'A': ['123','456','789'], 'B': ['D1','D4','D7'], 'C':['D2','D5','D8'], 'D':['D3','D6','D9']}
df1 = pd.DataFrame(data)
data2 = {'A': ['123','789','111','222'], 'B': ['D1','D7','D11','D14'], 'C':['D10','D8','D12','D15'], 'D':['D3','D9','D13','16']}
df2 = pd.DataFrame(data2)
2个框架之间的主要关键链接是列“A”。
期望输出-
- df 1-df 2中不存在的行(“A”= 456)
- df 2-df 1中不存在的行(“A”= 111且“A”= 222)
1.具有差异的公共行-('A' = 123 -列'C' = D2与D10
3条答案
按热度按时间yzckvree1#
**Q1:**d1-df 2中不存在的行:
**Q2:**df 2-df 1中不存在的行:
**第3季度:**有差异的共同行:
g6baxovj2#
对于前两个问题,我的答案与@Bushmaster的答案相似,但在
A
常见的行之间,显示差异的方法略有不同。然后,为了突出显示
dfcom
每行中的差异:如果公共
dfcom
不是太大,则另一种可能性是直观地呈现差异:0pizxfdo3#
下面是一种方法来完成您的要求:
A
A
的公共值和相异值的子集df1
和df2
中的非公共行,通过索引(即,通过A
的值)阅读适当的行V1 vs V2
样式字符串,其中相似值用NaN标记。输出: