df_n_gender_grp = df_n_gender_prod_cat.groupby(['Gender','prod_cat'])
我的输出如下所示
Gender prod_cat
0 M Books
1 M Books
2 M Electronics
3 M Electronics
4 M Books
100 F Electronics
101 F Electronics
102 F Electronics
103 F Electronics
104 F Electronics
105 F Clothing
106 F Clothing
107 F Clothing
108 F Clothing我的预期输出是
按值的降序排列的第一个数据帧
M Books 2
M Electronics 3按值降序排列的第二个数据帧
F Electronics 5
F Clothing 4发布于 2020-01-05 00:26:56
用于带有MultiIndex GroupBy.size和Series.sort_index的Series
s = df_n_gender_prod_cat.groupby(['Gender','prod_cat']).size().sort_index(ascending=False)
print (s)
Gender prod_cat
M Electronics 2
Books 3
F Electronics 5
Clothing 4
dtype: int64然后按loc过滤
df1 = s.loc[['F']]
df2 = s.loc[['M']]对于DataFrame,必须添加Series.reset_index
df1 = s.loc[['F']].reset_index(name='count')
df2 = s.loc[['M']].reset_index(name='count')或者先添加Series.reset_index:
df = (df_n_gender_prod_cat.groupby(['Gender','prod_cat'])
.size()
.sort_index(ascending=False)
.reset_index(name='count'))
print (df)
Gender prod_cat count
0 M Electronics 2
1 M Books 3
2 F Electronics 5
3 F Clothing 4然后按boolean indexing过滤
df1 = df[df['Gender'].eq('F')]
df2 = df[df['Gender'].eq('M')]https://stackoverflow.com/questions/59592593
复制相似问题