我试图计算一个大型数据集中“力”列的平均值和置信区间(95%)。我需要的结果,通过使用分组不同的“类”的groupby功能。
当我计算平均值并将其放入新的dataframe中时,它为所有行提供NaN值。我不确定我走的路是否正确。有没有更简单的方法?
以下是示例数据框架:
df=pd.DataFrame({ 'Class': ['A1','A1','A1','A2','A3','A3'],
'Force': [50,150,100,120,140,160] },
columns=['Class', 'Force'])
为了计算置信区间,我做的第一步是计算平均值。这就是我使用的:
F1_Mean = df.groupby(['Class'])['Force'].mean()
这为所有行提供了NaN
值。
4条答案
按热度按时间soat7uwm1#
2021年10月25日更新:@a-donda指出,95%应基于平均值的1.96 X标准差。
输出为
jgwigjjp2#
你可以通过利用“sem”来简化@yoonghm解决方案,sem是平均值的标准误差。
aiqt4smr3#
正如在评论中提到的,我不能复制你的错误,但你可以尝试检查你的数字存储为数字,而不是字符串。使用
df.info()
并确保相关列是float或int:mo49yndu4#
我不想让你痛苦,但1.96 * sd公式是一个严重的过度简化,并导致在较小的样本中不好的结论。使用t分布代替:
输出=
(已确认来自chatgpt 3.5的协助)