Pandas,如何把值转换成索引(Values to Index)?

发布于 2022-09-06 08:54:53 字数 354 浏览 7 评论 0

names = pd.Series(['张', '李', '包', '王', '李', '包', '曹', '曹', '张', '李', '包', '王'])
counts = names.value_counts()
print(counts)
### 结果
包    3
李    3
王    2
张    2
曹    2

有一批姓氏数据,如上可以统计出各个姓氏的个数。

然而我要这样的表,该怎么写?用counts[2]表示数量是2的姓氏列表,即['王', '张', '曹']

   0    1   2
2  王  张  曹
3  包  李

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情绪 2022-09-13 08:54:53
d = pd.DataFrame()
d['a'] = counts.index
d['b'] = counts.values

result = d["a"].groupby(d["b"]).unique()
梦中的蝴蝶 2022-09-13 08:54:53

先把你的那个counts转换成字典,然后利用setdefault这个方法。

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

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

print(result)

>>> {3: ['包', '李'], 2: ['王', '张', '曹']}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文