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

Python中如何为循环输出的统计列表添加行列表头并转为带表头的表格

问题解决方法

报错原因说明

  1. AttributeError: module 'pandas' has no attribute 'Dataframe' 是拼写错误,pandas的DataFrame构造方法首字母D和F都要大写,小写的f会识别不到。
  2. ValueError: Shape of passed values is (4, 1), indices imply (1, 4) 是因为传入构造DataFrame的数据维度不匹配:要么是直接把单组的4个统计值的一维元组当入参,要么是没有把所有分组的结果拼装成二维列表结构,导致pandas解析维度错误。
  3. 你原代码里的循环变量写法也有问题:groupby迭代返回的是(分组键, 分组DataFrame)的二元组,只写一个df_grp接收的话,后续直接用grp会报未定义错误。

正确实现代码

你需要先把所有分组的统计结果连同对应的Segment名称一起存入一个列表,再统一转换为DataFrame,完整代码如下:

import pandas as pd
import numpy as np
import math

# 初始化空列表存储所有分组的统计结果
stats_list = []

# 遍历groupby结果,分别接收分组名和分组数据
for seg_name, grp in df.groupby(['Segment']):
    grp_ci = 1.96 * np.std(grp['Conversion_Percentage'])/math.sqrt(len(grp['Conversion_Percentage']))
    grp_cvr = grp['Conversion_Percentage'].iloc[-1]
    grp_ci95plus = grp_cvr + grp_ci
    grp_ci95minus = grp_cvr - grp_ci
    # 将分组名和四个统计值一起存入列表
    stats_list.append([seg_name, grp_ci, grp_cvr, grp_ci95plus, grp_ci95minus])

# 统一转为DataFrame,指定列名后将Segment设为行索引
result_df = pd.DataFrame(stats_list, columns=['Segment', 'ci', 'cvr', 'ci95plus', 'ci95minus']).set_index('Segment')

# 直接打印即可得到你需要的表格格式输出
print(result_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:36:04