如何通过从数据帧列中分离男性/女性来找到95%的置信区间?

2024-05-14 14:06:02 发布

您现在位置:Python中文网/ 问答频道 /正文

Give a 95% confidence interval for the average rating for male reviewers, and do the same for female
##reviewers.


group2 = bigdataframe[['rating']].groupby(bigdataframe['gender'])
group2.count()
FN  =   25740
MN  =   74260

group2.mean()
F =     3.531507
M =     3.529289

group2.std()
FS   =  1.170951
MS   =  1.109556

F - 1.96(FS/(np.sqrt(NF)))
F + 1.96(FS/(np.sqrt(NF)))

M - 1.96(MS/(np.sqrt(NM)))
M + 1.96(MS/(np.sqrt(NM)))


My error: 'float' object is not callable

首先,我使用groupby根据每个性别统计评论。然后我可以使用mean/std函数来得到公式所需的数字。任何帮助都将不胜感激!在


Tags: thefornpsqrtmeanfsmsstd
1条回答
网友
1楼 · 发布于 2024-05-14 14:06:02

像这样使用agg函数的方法可能更适合您的应用程序。你甚至可以编写一个自定义函数来进行聚合。但这里我创建了上置信区间值。在agrgegate结果中引用列时,需要使用tuple。很抱歉,我的样本量太小,违反了常态假设)!在

import numpy as np
import pandas as pd
sx = np.array(['M','M','M','F','F','F'])
val = np.random.normal(0,1,6)
df = pd.DataFrame({'sex':sx, 'value':val})
gp = df.groupby('sex')
result = gp.agg(['mean','std','count'])
result[('value','upper_ci')] = result[('value', 'mean')] + 1.96*np.divide(result[('value','std')], np.sqrt(result[('value','count')]))

相关问题 更多 >

    热门问题