我有两个索引的多索引数据框,STNAME(州名)和CTYNAME(县名)
数据框表示每个州的县详细信息。因此,有一些国家(STNAME)和每个州都有一些县(CTYNAME)。
我需要找到拥有最大县数的州,并根据每个郡的县数对各州进行分类。
答案 0 :(得分:0)
我认为你需要:
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_values
获取value_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