如果 df1 满足 df2 两列中的两个条件,我想在 df1 中创建一个新的布尔列。例如:
df1:
ID Date
01234 8-23-2020
01234 8-26-2020
01235 8-24-2020
01235 9-3-2020
01236 9-1-2020
df2:
id visit
01234 8-23-2020
01235 9-3-2020
我想在 df1 中仅将 df2 中的访问设置为“True”,结果如下:
df1:
ID Date In_store
01234 8-23-2020 1
01234 8-26-2020 0
01235 8-24-2020 0
01235 9-3-2020 1
01236 9-1-2020 0
我试过了:
pos_id = df2['id'].tolist()
pos_date = df2['visit'].tolist()
for row in df:
if df1['ID'].isin(pos_id) and df1['Date'].isin(pos_visit):
df1['In_store'] = 1
else:
df1['In_store'] = 0
但我得到:“ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。”
我已经尝试过:
for row in df:
if df1['ID'] == df2['ID'] and df1['Date'] == df2['Date']:
df1['In_store'] = 1
else:
df1['In_store'] = 0
但我得到:“ValueError:只能比较相同标签的系列对象”,即使将列重命名为相同的列后也是如此。
我缺少什么?谢谢
阿波罗的战车
相关分类