如何按类别统计数据集中日期出现次数并生成新DataFrame
解决按日期和类别统计总次数的问题
你的需求是统计每个日期下各分类的出现总次数,目前的代码逻辑不符合需求,以下是修正后的方案:
核心思路
利用pandas的分组聚合功能,直接按date和class_id分组,统计每组的记录数量(完全匹配你给出的示例输出要求)。
修正后的代码
from google.colab import drive drive.mount('/content/gdrive', force_remount=True) import pandas as pd # 读取CSV文件,解析时间列并设为索引 data = pd.read_csv( 'gdrive/My Drive/Colab_Notebooks/classproject/classdata.csv', parse_dates=['timedate'], index_col='timedate' ) # 从时间索引中提取日期字段 data['date'] = data.index.date # 按日期和类别分组,统计每组记录数并转换为目标DataFrame result = data.groupby(['date', 'class_id']).size().reset_index(name='count') # 输出结果 print(result)
代码说明
- 清理冗余依赖:移除了不需要的
sklearn相关库(你的需求和机器学习无关) - 分组统计:
groupby(['date', 'class_id'])将数据按日期+类别维度拆分,size()统计每组的记录条数,reset_index(name='count')把聚合结果转换为标准DataFrame格式 - 结果匹配示例:运行后会直接输出和你预期一致的统计结果
额外适配
如果你的输入CSV中count列是需要求和的数值(而非记录序号),只需将size()替换为求和逻辑即可:
result = data.groupby(['date', 'class_id'])['count'].sum().reset_index()
内容的提问来源于stack exchange,提问作者Sonny
相关产品推荐
相关产品推荐

