我有以下数据框:
import pandas as pd
df = pd.DataFrame({
'name': ['Mason', 'Ali', 'Si', 'Pedram'],
'continent': ['Europe', 'Asia', 'Asia', 'Asia'],
'blood_type': ['AB', 'O+', 'AB', 'AB']
})
name continent blood_type
0 Mason Europe AB
1 Ali Asia O+
2 Si Asia AB
3 Pedram Asia AB
分组和计数后,我有了一个新的数据框:
new_df = df.groupby(['continent', 'blood_type']).count()
name
continent blood_type
Asia AB 2
O+ 1
Europe AB 1
我想在每个“大陆”(例如“亚洲”和“欧洲”)中查找并记录“名称”列的最大值: 这就是我所做的:
new_df["max"] = new_df.groupby("continent")["name"].transform(max)
name max
continent blood_type
Asia AB 2 2
O+ 1 2
Europe AB 1 1
还有更好的方法吗? 我还需要以下结果以仅查看每个“大陆”中“名称”为最大值(与“最大值”相同)的行:
name max
continent blood_type
Asia AB 2 2
Europe AB 1 1
我很确定应该有一种更容易的方法。请帮帮我:)