假设我有一个DataFrame DF
0 1
0 ABC DEF
1 abc def
和一份名单
['ABC', 'DEF', 'abc']
个
我想判断df的所有条目是否也都在ls中.如果没有,我希望打印出任何未包含的元素.在这种情况下,代码应该打印‘def’.
(编辑:为了澄清,我想要cell中的value,其中条件为真.大多数常见的用例,通常涉及df.loc
,只查看条件为真的row or column.但是,由于通常不清楚行/列的哪些单元格满足条件,因此这些并不能很好地解决我的问题.
我想到了这个:
tmp = df.loc[(~df.isin(ls)).any(), :].iloc[0, :]
print(tmp.loc[~tmp.isin(ls)].iloc[0])
因为这是我的代码应该做的最后一件事,所以我也可以这样做:
df.applymap(lambda s: exit(s) if s not in ls else None)
但它真的很难看.有没有更优雅的解决方案?