如何查看X列中的值是否也在Y列中并返回True / False?

时间:2019-04-25 14:41:04

标签: python pandas

我试图让python遍历我的pandas dataframe.x列中的所有行,如果此值在dataframe.y列中的任何位置,则返回True。

我已经尝试过这样做,但是没有用。

#Create a column for storage
df["y_exists"] = ""

#Here is a loop that always returns FALSE
if df.x in df.y:
    df.x_exists="TRUE"
else:
    df.x_exists="FALSE"

当我知道许多值应该返回TRUE时,这只会导致列中的值为FALSE。

理想情况下,如果数据帧的第一行在x列中的值为“ 105”,它将在y列中搜索“ 105”,如果在其中则返回TRUE,否则返回FALSE并将其重新存储为新的我创建的列。

1 个答案:

答案 0 :(得分:3)

您正在寻找pandas.DataFrame.isin

但是,您不应该循环,而应使用向量化,因为这样效率更高:

df['exists_in_y']=df['x'].isin(df['y'])