首页 > 解决方案 > 在熊猫数据框中订购一列

问题描述

我需要创建一个数据框,过滤出“国籍”列中最常列出的五个国家以及它们被列出的总次数。我一直在尝试使用 groupby,但没有成功。我用过的代码

df.groupby(['Nationality']).sum() 

我还需要确定参与该计划的人中有多少百分比至少有一个推荐。我也不确定这个代码。

这是数据框的一部分

标签: pythonpandaspandas-groupby

解决方案


过滤掉包含前 5 个国籍的国籍的行:

df[df['Nationality'].isin(df['Nationality'].value_counts().index[:6]) == False]

通过查看 df 的形状来查看它们被列出了多少次,其中行包含排名前 5 的国籍:

df[df['Nationality'].isin(df['Nationality'].value_counts().index[:6])].shape

查看 Number_of_Referalls 的百分比值 > 或 = 1 的快速方法:

(df['Number_of_Referalls '] >= 1).value_counts(normalize=True) * 100

推荐阅读