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

如何用Python Pandas按唯一日期统计多列?pd.value_counts仅支持单列统计

按唯一日期统计多列数据的解决方案

Hey there! 你想要按日期聚合统计good、bad、normal这几列的总数对吧?pd.value_counts确实只适合单列的频次统计,不过咱们用Pandas的分组聚合功能就能轻松搞定这个需求。

核心思路

你的数据里每行对应一条记录,good/bad/normal列用0和1标记状态,所以只需要按date分组后对这三列求和,就能得到每个日期下各状态的总数量。

方法一:使用groupby + sum(最直接)

这是最常用的分组统计方式,代码简洁高效:

import pandas as pd
# 假设你已经读取并整理好df2数据
# 按date分组,指定需求统计的列并求和
result = df2.groupby('date')[['good', 'bad', 'normal']].sum().reset_index()
print(result)

运行后会输出类似这样的结果:

date  good  bad  normal
0  2017-09-16     0    1       1
1  2017-09-20     2    0       0
2  2017-09-22     0    0       1

方法二:使用pivot_table(更灵活的透视统计)

如果之后需要扩展统计逻辑(比如同时求均值、计数),pivot_table会更灵活,效果和上面一致:

result = pd.pivot_table(
    df2,
    index='date',
    values=['good', 'bad', 'normal'],
    aggfunc='sum'
).reset_index()
print(result)

小提示

注意你代码里的"normal":df.norma应该是笔误哦,要改成df.normal,不然会因为找不到对应列报错~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:27:46