Python 3.x isin()方法会自动转换元素比较中的数据类型吗?

Python 3.x isin()方法会自动转换元素比较中的数据类型吗?,python-3.x,pandas,Python 3.x,Pandas,不知是否有人能帮我。当我获取一个包含字符串的常规python列表,并检查pandas系列(pla.id)是否有与该列表中的值匹配的值时。它起作用了 这是伟大的,但我想知道它如何能够比较字符串和整数。。。是否有文件表明,在比较这些值之前,它将在发动机罩下进行转换 我在pandas文档的.isin()页上找不到任何内容 另一个超级有趣的是,当我尝试索引时,由于类型比较而失败。 所以我有两个问题: pandas.series.isin(字符串的某些列表)方法是否会在进行值比较之前自动将序列中的值(

不知是否有人能帮我。当我获取一个包含字符串的常规python列表,并检查pandas系列(pla.id)是否有与该列表中的值匹配的值时。它起作用了

这是伟大的,但我想知道它如何能够比较字符串和整数。。。是否有文件表明,在比较这些值之前,它将在发动机罩下进行转换

我在pandas文档的.isin()页上找不到任何内容

另一个超级有趣的是,当我尝试索引时,由于类型比较而失败。

所以我有两个问题:

  • pandas.series.isin(字符串的某些列表)方法是否会在进行值比较之前自动将序列中的值(即int值)转换为字符串

  • 如果是这样的话,为什么熊猫索引(即df[df.series=='some value'])不做同样的事情呢?这背后的想法是什么?如果我想完成同样的事情,我必须执行df[df.series.astype(str)=''或df[df.series.astype(str.isin)(一些字符串的列表)]来访问df中匹配的值

  • 经过一些挖掘,我认为这可能是由于熊猫对象数据类型造成的?但我不明白为什么会这样。这也不能解释为什么下面的方法有效。。。因为它是一个int数据类型
    提前谢谢

    我不确定我是否理解这个问题,但也许
    (pla.id).isin(sku)
    能帮上忙吗?另外,当有str且子列表是数字的时候,
    isin
    函数failedDror——这也是我所不希望的。因此,问题是确认pandas在.isn()方法中检查列表时是否会转换序列(SKU是一个字符串列表)是的,这是真的。太奇怪了,它转换成一种方式。我怀疑这与numpy数据类型存储值的方式有关(因为dtype对象来自numpy),但我很难理解为什么