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

如何用Python Pandas提取每个评分短语对应的评分值?

问题:按评分短语分组展示对应所有评分值

我的数据集包含存储浮点数的score列,以及描述评分的字符串列score_phrase。想要用Python/Pandas筛选并展示每个短语对应的所有评分值。目前已实现加载数据、筛选目标列并按评分从低到高排序的代码:

reviews = pd.read_csv("ign.csv")

filter_reviews = reviews.loc[:,["score_phrase","score"]]

filtered_reviews = filter_reviews.sort_values(by =["score"])

print (filtered_reviews)

解决方案

要实现按评分短语分组,展示每个短语对应的所有评分值,核心是用Pandas的groupby方法对score_phrase分组,再收集每个组内的score值。以下是两种常用实现方式:

方式1:生成分组后的结构化DataFrame

适合需要保存或进一步处理分组结果的场景,同时可按评分高低排序短语:

import pandas as pd

# 加载数据并筛选目标列
reviews = pd.read_csv("ign.csv")
filter_reviews = reviews.loc[:, ["score_phrase", "score"]]

# 按评分短语分组,收集对应所有评分值(去重并排序)
grouped_data = filter_reviews.groupby('score_phrase')['score'].apply(lambda x: sorted(x.unique())).reset_index()

# 按每个短语对应的最低评分排序,让结果从低分到高分排列
grouped_data['min_score'] = grouped_data['score'].apply(lambda x: x[0])
sorted_grouped = grouped_data.sort_values('min_score').drop('min_score', axis=1)

# 打印结果
print(sorted_grouped)

方式2:逐个打印每个短语及其评分

适合需要直观查看每个短语对应评分的场景:

import pandas as pd

reviews = pd.read_csv("ign.csv")
filter_reviews = reviews.loc[:, ["score_phrase", "score"]]

# 分组并处理每个组的评分(去重+排序)
grouped = filter_reviews.groupby('score_phrase')['score'].apply(lambda x: sorted(x.unique()))

# 按评分最小值排序分组结果
sorted_groups = grouped.sort_values(key=lambda x: x.iloc[0])

# 遍历打印
for phrase, scores in sorted_groups.items():
    print(f"评分短语: *{phrase}*")
    print(f"对应的评分值: {scores}\n")

说明

  • 如果不需要去重评分,去掉代码中的unique()即可
  • sorted()保证每个短语内的评分按升序排列
  • 排序分组结果时,用每个短语的最低评分作为依据,让整体结果从低分到高分展示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:05:21