鍍金池/ 問答/數(shù)據(jù)分析&挖掘  Python/ Pandas,如何把值轉(zhuǎn)換成索引(Values to Index)?

Pandas,如何把值轉(zhuǎn)換成索引(Values to Index)?

names = pd.Series(['張', '李', '包', '王', '李', '包', '曹', '曹', '張', '李', '包', '王'])
counts = names.value_counts()
print(counts)
### 結(jié)果
包    3
李    3
王    2
張    2
曹    2

有一批姓氏數(shù)據(jù),如上可以統(tǒng)計(jì)出各個(gè)姓氏的個(gè)數(shù)。

然而我要這樣的表,該怎么寫?用counts[2]表示數(shù)量是2的姓氏列表,即['王', '張', '曹']

   0    1   2
2  王  張  曹
3  包  李
回答
編輯回答
你的瞳

先把你的那個(gè)counts轉(zhuǎn)換成字典,然后利用setdefault這個(gè)方法。

a_dict = {
    "包" : 3,
    "李" : 3,
    "王" : 2,
    "張" : 2,
    "曹" : 2,
}

result = {}
for k, v in a_dict.items():
    result.setdefault(v, []).append(k)

print(result)

>>> {3: ['包', '李'], 2: ['王', '張', '曹']}
2017年3月12日 09:48
編輯回答
吃藕丑
d = pd.DataFrame()
d['a'] = counts.index
d['b'] = counts.values

result = d["a"].groupby(d["b"]).unique()
2018年1月17日 11:56