Python 另一个数据帧返回多个匹配项
我有一个客户数据框(客户),具有唯一的id 我需要查看已召开会议的另一个数据框(会议)(使用客户id进行查找),并返回最近一次会议的日期 大多数客户都有多次会议,但有些客户没有。在这种情况下,我需要返回0Python 另一个数据帧返回多个匹配项,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个客户数据框(客户),具有唯一的id 我需要查看已召开会议的另一个数据框(会议)(使用客户id进行查找),并返回最近一次会议的日期 大多数客户都有多次会议,但有些客户没有。在这种情况下,我需要返回0 Customers id name 1607 duck 1622 dog 1972 cat 2204 bird 2367 fish 2373 elephant 2386 moose 2413 mammal 2418 man 221
Customers
id name
1607 duck
1622 dog
1972 cat
2204 bird
2367 fish
2373 elephant
2386 moose
2413 mammal
2418 man
22120 goldfish
6067 toucan
83340 capybara
会议情况如下:
meetings
customer_id date meeting_id
1607 25/02/2019 1235
1607 11/03/2019 2315
1607 11/03/2019 5483
1622 16/11/2018 32125
1972 13/02/2019 6548
2204 4/02/2019 6542
2204 8/11/2018 8755
2367 22/01/2019 6545
2373 14/12/2018 8766
2373 18/01/2019 5448
2386 18/02/2019 32125
2386 18/02/2019 5458
2413 6/12/2018 31125
2413 5/03/2019 5183
2418 21/01/2019 3158
2418 23/01/2019 3127
2418 24/01/2019 7878
2418 21/01/2019 7894
2418 31/01/2019 7895
2418 6/03/2019 4548
id name most_recent most_recent_id
1607 duck 11/03/2019 xxxx
1622 dog 16/11/2018 xxxxx
1972 cat 13/02/2019 xxxx
2204 bird 4/02/2019 etc
2367 fish 22/01/2019
2373 elephant 18/01/2019
2386 moose 18/02/2019
2413 mammal 5/03/2019
2418 man 6/03/2019
22120 goldfish 0
6067 toucan 0
83340 capybara 0
我想返回customers表,另一列显示最近的会议及其会议id,如下所示:
meetings
customer_id date meeting_id
1607 25/02/2019 1235
1607 11/03/2019 2315
1607 11/03/2019 5483
1622 16/11/2018 32125
1972 13/02/2019 6548
2204 4/02/2019 6542
2204 8/11/2018 8755
2367 22/01/2019 6545
2373 14/12/2018 8766
2373 18/01/2019 5448
2386 18/02/2019 32125
2386 18/02/2019 5458
2413 6/12/2018 31125
2413 5/03/2019 5183
2418 21/01/2019 3158
2418 23/01/2019 3127
2418 24/01/2019 7878
2418 21/01/2019 7894
2418 31/01/2019 7895
2418 6/03/2019 4548
id name most_recent most_recent_id
1607 duck 11/03/2019 xxxx
1622 dog 16/11/2018 xxxxx
1972 cat 13/02/2019 xxxx
2204 bird 4/02/2019 etc
2367 fish 22/01/2019
2373 elephant 18/01/2019
2386 moose 18/02/2019
2413 mammal 5/03/2019
2418 man 6/03/2019
22120 goldfish 0
6067 toucan 0
83340 capybara 0
已经尝试了两种不同的方法,通过df的循环等,但没有任何工作
感谢您的帮助!
谢谢。试试这个
df2=df2.drop_duplicates(subset=['customer_id'],keep='last')
pd.merge(df1, df2, left_on=['id'], right_on=['customer_id'], how='left').rename(columns={'date':'most_recent','meeting_id':'most_recent_id'}).drop('customer_id',1).fillna(0)
您只需要从df2中删除所有重复记录,并保留最后(最新)记录。然后应用左合并
O/p: