Python 切片数据帧以获得不同类别的计数

Python 切片数据帧以获得不同类别的计数,python,pandas,dataframe,Python,Pandas,Dataframe,我的数据框如下图所示: 这里显示了更多的类别,我的目标是对33个类别中的每一个进行切片,以获得唯一用户名的数量。我想做这样的事情: SexualHealth = df2.loc["Sexual Health & STDs"] WomenHealth = df2.loc["Women's Health"] WeightLoss = df2.loc["Weight Loss"] MentalHealth = df2.loc["MentalHealth"] 然后转到每个数据帧并执行以下操作

我的数据框如下图所示:

这里显示了更多的类别,我的目标是对33个类别中的每一个进行切片,以获得唯一用户名的数量。我想做这样的事情:

SexualHealth = df2.loc["Sexual Health & STDs"]
WomenHealth = df2.loc["Women's Health"]
WeightLoss = df2.loc["Weight Loss"]
MentalHealth = df2.loc["MentalHealth"]
然后转到每个数据帧并执行以下操作:

SexualHealth_unique= SexualHealth['username'].value_counts()

但是我想知道是否有一种更快的方法,可以通过一个命令获得每个类别的唯一用户数,这正是我现在正在做的。

IIUC你想要的
df2.groupby('category')['category'].size()
。我已经按类别对它们进行了分组,所以当我打开数据框时,例如SexualHealth中的所有帖子都将按顺序排列,然后是WomenHealth中的所有帖子。现在我只想找到每个类别中唯一用户的数量。那么,类别现在是索引了吗?所以你可以做
df2.groupby(level=0).size()
?我也做过。我的问题是,因为我知道如何在每个用户名中找到唯一的用户名,所以您需要类似于
df2.groupby(level=0).apply(lambda x:x.value_counts())
的内容,如果这不起作用,您需要发布原始数据、代码和所需结果来帮助我们