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

如何在Pandas DataFrame中获取总问题数并赋值给变量

获取Pandas DataFrame中的总问题数

咱们先搞清楚你现在的问题所在:你用scale.dtypes.value_counts()得到的float64 3,其实是统计了scale这个DataFrame里数据类型为float64的列的数量,而不是你要的总问题数,这就是为什么结果和预期不符啦。

正确的解决方案

方法1:直接从原始分组数据中计数

在你的循环里,当拿到对应时间区间的groups数据后,直接对Questions列计数就能得到该时间段的总问题数——毕竟每一行数据对应一个问题:

for month in month_unique:
    month_data = data.loc[data['Month'] == month]
    for week in week_unique:
        groups = month_data.loc[month_data['Week'] == week]
        # 获取该时间段的总问题数
        total_questions = groups['Questions'].count()
        print(f"总问题数:{total_questions}")
        
        # 你原来的分组统计代码
        scale = groups.groupby(['Clusters', 'Day'])['Clusters'].count().unstack('Clusters').fillna(0)

方法2:从已分组的scale中求和

如果已经得到了scale这个分组统计后的DataFrame,也可以对所有单元格的值求和——因为每个单元格的数值就是对应分组的问题数量,累加后就是总问题数:

total_questions = scale.sum().sum()
print(f"总问题数:{total_questions}")

为什么你的原始方法不对?

  • scale.dtypes.value_counts()的作用是统计DataFrame中不同数据类型的列的数量,你的scale刚好有3列(Grafana、Logs、Topic)且都是float64类型,所以返回float64 3,这和问题总数完全无关。
  • 看你提供的CSV数据,确实有3条问题记录,用上面两种方法都能得到你想要的数值3。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:13:56