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