Python loc + isin 返回 FutureWarning(元素比较失败)

Posted

技术标签:

【中文标题】Python loc + isin 返回 FutureWarning(元素比较失败)【英文标题】:Python loc + isin returns FutureWarning (elementwise comparison failed) 【发布时间】:2020-03-04 10:01:16 【问题描述】:
df = df.loc[df['var'].isin(df2['this'].unique().tolist())]

上面的代码给了我一个 FutureWarning,我无法解决它。这是错误还是功能?

C:\Users\Username\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\lib\arraysetops.py:569: FutureWarning:元素比较失败;返回标量 相反,但将来会执行元素比较掩码 |= (ar1 == a)

【问题讨论】:

【参考方案1】:

比较数据集中的“int”和“str”时会出现此警告。将.astype(str) 添加到您的比较数据集中。 试试这个

df = df.loc[df['var'].astype(str).isin(df2['this'].astype(str).unique().tolist())]

【讨论】:

以上是关于Python loc + isin 返回 FutureWarning(元素比较失败)的主要内容,如果未能解决你的问题,请参考以下文章

数据框列数据 - 熊猫 - python

PySpark:使用 isin 过滤返回空数据框

python练习:编写一个函数isIn,接受两个字符串作为参数,如果一个字符串是另一个字符串的一部分,返回True,否则返回False。

Python .loc 返回 TypeError [重复]

只需要从列表中选择至少存在一个值的行

4、pandas的数据筛选之isin和str.contains函数