如果你用相同的索引加入groupby,其中一个是nunique -〉number of unique items,另一个是unique-〉list of unique items,那么你会得到两列名为Sport。使用as_index=False,我可以使用rename重命名第二个Sport名称,然后将两个列表连接在一起,按sport降序排序,并显示105个sportcount。
grouped=df.groupby('NOC', as_index=False)
Nsport=grouped['Sport'].nunique()\
.rename(columns={'Sport':'SportCount'})
Nsport=Nsport.set_index('NOC')
country_grouped=df.groupby('NOC')
Nsport2=country_grouped['Sport'].unique()
df2=pd.concat([Nsport,Nsport2], join='inner',axis=1).reindex(Nsport.index)
df2=df2.sort_values(by=["SportCount"],ascending=False)
print(df2.columns)
for key,item in df2.head(5).iterrows():
print(key,item)
4条答案
按热度按时间wmvff8tz1#
不能重命名,因为它是
index
,可以添加as_index=False
返回DataFrame
或添加reset_index
:或者:
pu82cl6c2#
zf9nrax13#
如果你用相同的索引加入groupby,其中一个是nunique -〉number of unique items,另一个是unique-〉list of unique items,那么你会得到两列名为Sport。使用as_index=False,我可以使用rename重命名第二个Sport名称,然后将两个列表连接在一起,按sport降序排序,并显示105个sportcount。
col17t5w4#
超快的方法