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

Python中按week列分组统计Visits布尔值占比的实现方法

原代码错误说明
  • 你初始定义的df是Python普通字典,不是Pandas DataFrame对象,不能直接调用.week属性
  • for j in df.week = u[0]语法不符合Python规范,循环逻辑完全错误
  • 没有实现按week字段分组的逻辑,原统计逻辑是全表的Visits值计数,没有分组维度
正确实现代码

直接用Pandas内置的分组统计方法即可实现需求,无需手动写循环:

import pandas as pd
import numpy as np 

# 1. 将字典转为Pandas DataFrame对象
df = pd.DataFrame({'week':["Monday","Tuesday", "Monday", "Monday", "Tuesday"], 'Visits':[True, False, True, True, True]})

# 2. 按week分组,统计每组内Visits的True/False占比,转为百分比后保留2位小数
percent_result = df.groupby('week')['Visits'].value_counts(normalize=True).mul(100).round(2)
# 若需要同时展示数量和百分比,可以用下方写法
count_percent_result = df.groupby(['week','Visits']).agg(
    数量 = ('Visits','count'),
    组内百分比 = ('Visits', lambda x: round(len(x)/len(x.group)*100,2))
).reset_index()

print("仅百分比统计结果:")
print(percent_result)
print("\n带数量的统计结果:")
print(count_percent_result)

输出示例

仅百分比统计结果:
week     Visits
Monday   True      100.0
Tuesday  True       50.0
         False      50.0
Name: Visits, dtype: float64

带数量的统计结果:
      week  Visits  数量  组内百分比
0   Monday    True   3   100.0
1  Tuesday   False   1    50.0
2  Tuesday    True   1    50.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:24:06