You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas的value counts结果中筛选指定行并优化百分比展示

问题解决方案

一、筛选指定索引的行

你用loc结合isin()筛选失败,大概率是因为索引类型不匹配:你的DataFrame里5、4这些索引是整数类型,但你传入的筛选列表是字符串['5','4','3','2','1','0'],类型对不上自然匹配不到结果。

给你两种解决办法:

  • 方法1:将筛选列表改成整数类型,直接匹配
target_indices = [5, 4, 3, 2, 1, 0]
filtered_df = ratings.loc[ratings.index.isin(target_indices)]
  • 方法2:先把索引转为字符串类型,再用原字符串列表筛选
# 先转换索引类型
ratings.index = ratings.index.astype(str)
# 再筛选
filtered_df = ratings.loc[ratings.index.isin(['5','4','3','2','1','0'])]
# 也可以一步完成
filtered_df = ratings.loc[ratings.index.astype(str).isin(['5','4','3','2','1','0'])]

二、更优雅的百分比展示方式

没必要手动乘以100再取整,用Python的字符串格式化或者pandas自带的工具就能轻松实现:

  • 方法1:用applymap批量格式化数值,生成带百分号的字符串
# 保留2位小数的百分比格式,可按需调整小数位数
formatted_df = ratings.applymap(lambda x: "{:.2%}".format(x))
  • 方法2:如果是在Jupyter环境中展示表格,用style.format更直观美观
# 同样可调整小数位数,比如{:.1%}保留1位小数
ratings.style.format("{:.2%}")

这种方式会自动完成乘100、添加百分号的操作,比手动计算更简洁,还能保证精度。

内容的提问来源于stack exchange,提问作者elksie5000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 21:28:20