首页 > 解决方案 > Python Pandas - 根据值的某些条件选择多级索引

问题描述

Premise Description                       Victim Sex
7TH AND METRO CENTER (NOT LINE SPECIFIC)  F               21
                                          M               36
                                          X                1
ABANDONED BUILDING ABANDONED HOUSE        F               98
                                          M              158
                                                        ... 
WEBSITE                                   F               38
                                          M               30
YARD (RESIDENTIAL/BUSINESS)               F             5694
                                          M             7229
                                          X              158
Name: Victim Sex, Length: 889, dtype: int64

我使用以下代码对数据框进行了分组,结果如上:

data.groupby(["Premise Description","Victim Sex"])["Victim Sex"].count()

我需要为每个前提描述找到更受害的受害者性别?我需要输出为:

Premise Description                       Victim Sex
7TH AND METRO CENTER (NOT LINE SPECIFIC)  M               36
ABANDONED BUILDING ABANDONED HOUSE        M              158
....

标签: pythonpython-3.xpandaspandas-groupbymulti-index

解决方案


尝试:

data.groupby(["Premise Description","Victim Sex"])["Victim Sex"].count().sort_values().groupby(level=0).tail(1)

样本df:

    desp    Sex
0   a   m
1   a   m
2   b   f
3   a   f
4   b   m
5   c   f
6   b   m
7   c   f
8   c   m
9   b   f
10  a   f
11  b   m
12  c   f

u = df.groupby(["desp", "Sex"])["Sex"].count()
v = u.sort_values().groupby(level=0).tail(1)

你:

desp  Sex
a     f      2
      m      2
b     f      2
      m      3
c     f      3
      m      1
Name: Sex, dtype: int64

五:

desp  Sex
a     m      2
b     m      3
c     f      3
Name: Sex, dtype: int64

推荐阅读