[英]Check if value from one dataframe exists in another dataframe and create column
我希望比较两个不同数据集中列的值,并创建一个具有匹配结果的列。
DF1:
Dates
0 2021-10-01
1 2021-10-02
2 2021-10-03
3 2021-10-04
4 2021-10-05
5 2021-10-06
6 2021-10-07
DF2 =
StartDate User
2021-10-04 Doe, John
2021-10-07 Ann, Mary
2021-10-07 Doe, John
预期结果
DF1:
Dates User
0 2021-10-01
1 2021-10-02
2 2021-10-03
3 2021-10-04 Doe, John
4 2021-10-05
5 2021-10-06
6 2021-10-07 Ann, Mary; Doe, John
我可以使用以下代码查看匹配项:
df1= df2.loc[df2['StartDate'].isin(df1['Dates']), 'User']
我可以用以下内容返回 1/0:
df1= df1.assign(result=df1['Dates'].isin(df2['StartDate']).astype(int))
但是,我似乎无法将它们合并
df.join(df2.groupby('StartDate')['User'].apply('; '.join), how='left', on='Dates').fillna('')`
输出:
>>> df
Dates User
0 2021-10-01
1 2021-10-02
2 2021-10-03
3 2021-10-04 Test1
4 2021-10-05
5 2021-10-06
6 2021-10-07 Test2, Test1
你想做两件事:
从这个答案开始,将您的 DF2 聚合成所需的形式(即,在 col User 中有 Test2、Test 1):
获取结果,确保它是一个 Dataframe,然后使用 join(或合并!)现在按照此处给出的示例适当地组合事物:
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.join.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.