Для кадра данных df
df = pd.DataFrame({'id': ['1', '1', None, None, '1', '2', '2', '3', None, '4'],
'last_name': ['Clinton', 'Clinton', 'Clinton','Clinton', None, 'Bush', 'Bush', None, 'Obama', 'Obama'],
'first_name': ['Bill', 'William', 'Bill', 'William', None, 'Georg W.', 'Georg', None, 'Barack', 'Barack']})
df['id'] = df['id'].astype('category')
print(df)
, который дает следующую таблицу
id last_name first_name
0 1 Clinton Bill
1 1 Clinton William
2 NaN Clinton Bill
3 NaN Clinton William
4 1 NaN None
5 2 Bush Georg W.
6 2 Bush Georg
7 3 NaN None
8 NaN Obama Barack
9 4 Obama Barack
Я хочу сгруппировать по id
и last_name
, удалить дубликаты иудалить None
, если есть более одной записи.Таким образом, вывод должен выглядеть как
first_name
id last_name
1 Clinton Bill
Clinton William
2 Bush Georg W.
Bush Georg
3 None None
4 Obama Barack
Одна из моих проблем заключается в том, что groupby
не работает, поскольку исключает значения None
/ NaN
.
Какие-нибудь изящные идеи?