【问题标题】:Multi level indexed dataframe: count the level values多级索引数据框:计算级别值
【发布时间】:2018-04-20 19:36:57
【问题描述】:

我有两个索引的多索引数据框,STNAME(州名)和 CTYNAME(县名)

数据框代表每个州的县详细信息。因此,有一些州 (STNAME),每个州都有一些县 (CTYNAME)。

我需要找到其中县数最多的州,并根据每个州的县数对州进行排序。

【问题讨论】:

标签: python-3.x pandas dataframe data-analysis


【解决方案1】:

我认为你需要:

df = pd.DataFrame({'STNAME':['AL'] * 3 + ['MI'] * 4 + ['NY'] , 
                   'CTYNAME':list('abcdefgh'),
                   'COL': range(8) }).set_index(['STNAME','CTYNAME'])
print (df)
                COL
STNAME CTYNAME     
AL     a          0
       b          1
       c          2
MI     d          3
       e          4
       f          5
       g          6
NY     h          7

首先通过get_level_valuesvalue_counts 获取第一级的值,默认按计数排序:

a = df.index.get_level_values('STNAME').value_counts()
print (a)
MI    4
AL    3
NY    1
Name: STNAME, dtype: int64

#get first value of index
print (a.index[0])
MI

对于变更订单,请使用reindex

df = df.reindex(a.index, level=0)
print (df)
                COL
STNAME CTYNAME     
MI     d          3
       e          4
       f          5
       g          6
AL     a          0
       b          1
       c          2
NY     h          7

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    相关资源
    最近更新 更多