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

如何根据pd.DataFrame对应行time_window值将对应score添加到列表

报错原因

你触发报错的核心原因有两个:

  • topics_data['time_window'] == '0h-4h'返回的是整个time_window列对应的布尔Series(每一行都返回一个True/False的判断结果),Python原生的if判断无法直接确定一个序列的整体布尔值,因此抛出该歧义错误。
  • 你写的for score in topics_data迭代逻辑错误:直接遍历Pandas DataFrame默认返回的是列名字符串,根本不是每行的score字段值。
最优实现方案

完全不需要写循环,用Pandas内置的布尔索引筛选即可,性能远高于自定义循环,代码也更简洁:

avg_04 = topics_data.loc[topics_data['time_window'] == '0h-4h', 'score'].tolist()

上述代码会先筛选出time_window等于0h-4h的所有行,再提取这些行的score列,最后直接转为列表格式。

循环写法(仅做参考,不推荐)

如果你确实需要用for循环实现,要改为迭代DataFrame的每行数据,示例如下:

avg_04 = []
for _, row in topics_data.iterrows():
    if row['time_window'] == '0h-4h':
        avg_04.append(row['score'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:30:02