针对一个数据框 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
值。有没有更好的解决方案呢?
df["id"] = df["id"].fillna("None")
。然后Groupby会将"None"考虑在内,因为它似乎只是像其他所有列值一样的一个列值。 - Sander Vanden Hautte