簡體   English   中英

檢查一個數據框中的值是否存在於另一個數據框中並創建列

[英]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

你想做兩件事:

  1. 結合日期的 DF2 結果
  2. 在日期加入或合並 DF2 與 DF1

從這個答案開始,將您的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM