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

Pandas DataFrame遍历列表时使用遍历变量统计rating列指定值出现次数

实现方法

你可以通过以下两种方式动态获取遍历变量对应值的计数:

方法1:提前预计算计数(推荐,性能最优)

df['rating'].value_counts() 本质返回的是索引为列取值、值为对应计数的Pandas Series,你可以提前计算一次计数结果,遍历的时候直接用索引读取即可,避免每次遍历都重新扫描整个DataFrame浪费性能:

# 提前只计算一次全列的计数值
rating_counts = df['rating'].value_counts()
mylist = ['a','b','c']

for item in mylist:
    # 动态获取当前item的计数,不存在则返回0
    current_count = rating_counts.get(item, 0)
    print(f"当前处理元素:{item},rating列出现次数:{current_count}")
    # 此处执行你的耗时操作

如果能确定item一定存在于rating列的取值中,也可以直接写current_count = rating_counts[item]。

方法2:实时统计(不推荐,仅适合DataFrame极小的场景)

如果确实不想预计算全列计数,也可以每次遍历的时候单独统计当前item的出现次数:

mylist = ['a','b','c']
for item in mylist:
    current_count = (df['rating'] == item).sum()
    print(f"当前处理元素:{item},rating列出现次数:{current_count}")
    # 此处执行你的耗时操作

该方法每次遍历都要扫描整个rating列,列表越长、DataFrame越大性能损耗越严重,非特殊情况不建议使用。

原写法不生效的原因

你尝试的df['rating'].value_counts().item写法属于属性访问,Pandas会把item当成固定的属性名去查找,而不会解析为你定义的遍历变量的值,因此需要用[]索引或者get()方法传入变量动态取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:57:00