我有两个数据框
df
其中包含原始数据,其头部看起来像(有几千条记录):
0 Floor Dept .....more fields
1 1 Kitchen
2 1 Electrical
3 2 DIY
4 3 Music
validation
这是哪个部门位于哪个楼层的不同列表
Floor Dept
G Food
1 Kitchen
1 Electrical
1 Toys
2 Electrical
3 Music
有没有办法使用validation
数据框来检查正确的部门是否位于df
中的正确楼层?使用两个验证列将用于检查 2 个 df 列。
因此它会捕获 df
中的错误,例如厨房位于 3 楼(实际上位于 1 楼)
非常感谢
最佳答案
您可以对数据帧进行元组化并进行 isin
检查。
val = validation.apply(tuple, 1).values
if ~df[['Floor', 'Dept']].apply(tuple, 1).isin(val).all():
print('Invalid Entries')
如果你只是想获得一个 bool 掩码,应该这样做:
mask = df[['Floor', 'Dept']].apply(tuple, 1).isin(val)
<小时/>
如果validation
有索引中的Floor
,请在apply
之前重置它。
val = validation.reset_index().apply(tuple, 1).values
关于python - 在两个数据帧之间执行相等性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46318732/