【发布时间】:2021-01-30 17:16:55
【问题描述】:
我有 2 个不同长度的 df (df1, df2)。我想在 df1 中找到 df2 中的值,然后创建一个带有布尔值的新列,该列显示值是否存在。 df2 仅包含 1 列和少于 df1 的行。以下是 dfs 的示例:
df1:
Name ID CRITICAL RATING
win mrp53 YES 8
lin mrp54 No 3
mac 0989 YES 8
win mrp56 YES 8
mac 786 YES 8
win hte45 YES 8
.
.
df2:
ID
mrp53
hfy56
dggg4
gfgshh4
比较后,df 应该是这样的:
Name ID CRITICAL RATING IS_PRESENT
win mrp53 YES 8 TRUE
lin mrp54 No 3 FALSE
mac 0989 YES 8 FALSE
win mrp56 YES 8 FALSE
我正在使用以下内容,它正在创建列,但值错误。例如。一切都是假的:
new_df = df1['ID'].assign(IS_PRESENT= df1['ID'].isin(df2['ID]).astype(bool)
关于如何实现这一点的任何建议?
【问题讨论】:
-
你试过了吗:
df1["IS_PRESENT"] = df1["ID"].isin(df2["ID"])?或类似的东西:df1["IS_PRESENT"] = df1["ID"].isin(df2["ID"].tolist())?
标签: python pandas dataframe merge