У меня есть два кадра данных с информацией о клиенте:
df1 = pd.DataFrame({'firstname':['jack','john','donald'],
'lastname':['ryan','obrien','trump'],
'email':['mymail@gmail.com','hismail@gmail.com','email@website.com'],
'bank_account':['abcd123','jhkf123','kdlk123']})
print(df1)
firstname lastname email bank_account
0 jack ryan mymail@gmail.com abcd123
1 john obrien hismail@gmail.com jhkf123
2 donald trump email@website.com kdlk123
df2 = pd.DataFrame({'firstname':['jack','patrick','barak'],
'lastname':['ryan','murphy','obama'],
'email':['mymail@gmail.com','some@email.com','other@email.com'],
'bank_account':[pd.np.nan]*3})
print(df2)
firstname lastname email bank_account
0 jack ryan mymail@gmail.com NaN
1 patrick murphy some@email.com NaN
2 barak obama other@email.com NaN
Я хочу вставить записи из df2
в df1
, но только если они не присутствуют в df1
.
Например, мы можем видеть, что jack ryan
присутствует в df2
и df1
, поэтому я не хочу, чтобы он был вставлен в df1
.
primary key
в этой ситуации может быть электронным письмом.Если электронная почта существует в df1
, не вставляйте запись.
Я экспериментировал и гуглил с pd.concat
в последнее время, устанавливая email
в качестве индекса и т. Д., И не могу получить желаемый результат, а именно:
firstname lastname email mobile address bank_account
0 jack ryan mymail@gmail.com 12346 main street abcd123
1 john obrien hismail@gmail.com 51234 high street jhkf123
2 donald trump email@website.com 54856 white house kdlk123
3 patrick murphy some@email.com 6548 north street NaN
4 barack obama other@email.com 2135 florida NaN
В ожидаемом выводе видно, что jack ryan
не было добавлено к новому фрейму данных, так как email
был проверен перед добавлением данных.