我有一个基准测试 Dataframe :
my_id parent_id attribute_1 attribute_2 attribute_3 attribute_4
ABC DEF A- 378.8 Accept False
ABS DES A- 388.8 Accept False
ABB DEG A 908.8 Decline True
ABB DEG B- 378.8 Accept False
APP DRE C- 370.8 Accept True
和 Dataframe :
my_id parent_id Attribute_1 attribute2 attr_3 attribute_5
ABC DEF A- 478.8 Decline StRing
ABS DES A- 388.8 Accept String
ABB DEG A 908.8 Accept StrIng
ABB DEG C- 378.8 Accept String
APP DRE C- 370.8 Accept STring
正如您所看到的,attribute_1、attribute_2或attribute_3中不时会出现一些错误(这些列的名称不同,但它们应该包含相同的内容)。
当我检查每一行的这三个属性是否与基准中的完全相同时,我如何标记错误记录?我希望输出类似于以下内容:
faulty_rows =
my_id parent_id Attribute_1 attribute2 attr_3 faulty_attr
ABC DEF A- 478.8 Decline [attribute2, attr_3]
ABB DEG A 908.8 Accept [attr_3]
ABB DEG C- 378.8 Accept [Attribute_1]
我所做的是重命名列,并且总是一列接一列地分别连接,这让我知道什么是错误的,但是我想同时检查整行,并且标记错误在哪里。这可能吗?PySpark或Pandas的解决方案都是好的,我对逻辑感兴趣。
3条答案
按热度按时间zaq34kh61#
它在pyspark中很复杂。请参见下面的代码和逻辑
wfveoks02#
假设
A
引用第一个dict,B
引用第二个dict:**选项1:**使用 Dataframe 比较
**选项2:**使用
DeepDiff
**选项3:**使用
DataFrame
合并