I have two dataframes, names and claims:
names = pd.DataFrame({
'UniqueID': 'A B C D E F'.split(),
'Name':['Susie', 'George Foreman', 'Charles', 'Nicole', 'Peter Piper', 'Penelope Cruz'],
'Address':['111 3rd St', '123 Bank St', '555 Square Sq', '9 Charlton Ave', 'PO Box 1', 'The White House'],
'Phone number':['2032218686', '2032032203', '8048048804', '2232645879', '2564544469', '8005865555']})
UniqueID Name Address Phone number
0 A Susie 111 3rd St 2032218686
1 B George Foreman 123 Bank St 2032032203
2 C Charles 555 Square Sq 8048048804
3 D Nicole 9 Charlton Ave 2232645879
4 E Peter Piper PO Box 1 2564544469
5 F Penelope Cruz The White House 8005865555
claims = pd.DataFrame({
'ClaimNo':range(29,38),
'ClaimDetails':['Slip and fall','Clmt slipped and fell','Thunderstorms are scary','Hail storm damage',
'Property fire','Arson','Shooting','Shooting and fatality','Slip and fall'],
'PolicyNo':['00058566-0','00056455-5','00058588-8','00011111-2','00088787-0','00045658-0','00012345-6','00065432-1','00088080-4'],
'UniqueID':'A F F D E A D E E'.split()})
ClaimNo ClaimDetails PolicyNo UniqueID
0 29 Slip and fall 00058566-0 A
1 30 Clmt slipped and fell 00056455-5 F
2 31 Thunderstorms are scary 00058588-8 F
3 32 Hail storm damage 00011111-2 D
4 33 Property fire 00088787-0 E
5 34 Arson 00045658-0 A
6 35 Shooting 00012345-6 D
7 36 Shooting and fatality 00065432-1 E
8 37 Slip and fall 00088080-4 E
I want to create a new DataFrame containing only the rows of names for which the UniqueID appears in claims. I'm not sure if they should be merged or filtered.. I've been trying different types of merges but I can't seem to get the result I want, which should look like this:
UniqueID Name Address Phone number
0 A Susie 111 3rd St 2032218686
1 D Nicole 9 Charlton Ave 2232645879
2 E Peter Piper PO Box 1 2564544469
3 F Penelope Cruz The White House 8005865555