1
In [1]: import pandas as pd
   ...: a=pd.DataFrame([1,2,'a'])

In [2]: a.isin([1,'a'])
Out[2]:
       0
0   True
1  False
2   True

In [3]: a.isin(pd.DataFrame([1,'a']))
Out[3]:
       0
0   True
1  False
2  False

为什么无法在 DataFrame 中找到“a”但可以在列表中找到?

PS:使用熊猫 1.0.5

在 [4] 中:pd。版本 [4]: '1.0.5'

4

1 回答 1

2

pd.DataFrame.isin文档非常清楚地说明了这种行为,强调我自己的。

如果 values 是 DataFrame,则索引和列标签都必须匹配

因此,并排查看您的两个 DataFrame:

a   isin  pd.DataFrame([1,'a'])

   0           0
0  1        0  1    True  <- 1 == 1 for col label (0) and index label (0) 
1  2        1  a    False <- 2 != 'a' for col label (0) and index label (1)
2  a                False <- Nothing to align 
于 2020-07-24T23:27:36.793 回答