python - 在两个数据帧之间执行相等性检查

标签 python pandas validation dataframe

我有两个数据框

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/

相关文章:

python - idxmax() 不适用于包含 NaN 的 SeriesGroupBy

ruby - Hanami 中的 2 个现场验证 + 干式验证

python - django -- __init__() 关键字必须是字符串

python - OpenCV显示带有黑条的额外窗口?

c# - 什么是完成主题的最佳方式

python-3.x - 如何将SEC txt文件读入 Pandas 数据框?

python - psycopg2 中的 COPY 命令

c++ - NetBIOS 名称正则表达式

java - 如何将 InputStream 转换为 Source?

python - 如何在 C/C++ 扩展模块中创建一个在 Python 代码中定义的类的新实例?