熊猫检查两个值是否在统计上不同

问题描述 投票:0回答:2

我有一个pandas数据框,其中包含一些“男性”值和一些“女性”值。我想计算两个性别值的百分比是否显着不同,并告诉我们这些比率的置信区间。下面是示例代码:

data={}
data['gender']=['male','female','female','male','female','female','male','female','male']
data['values']=[10,2,13,4,11,8,14,19,2]
df_new=pd.DataFrame(data)
df_new.head()   # make a simple data frame


    gender  values
0   male    10
1   female  2
2   female  13
3   male    4
4   female  11

df_male=df_new.loc[df_new['gender']=='male']
df_female=df_new.loc[df_new['gender']=='female']   # separate male and female

# calculate percentages
male_percentage=sum(df_male['values'].values)*100/sum(df_new['values'].values)
female_percentage=sum(df_female['values'].values)*100/sum(df_new['values'].values)

# want to tell whether both percentages are statistically different or not and what are their confidence interval rates
print(male_percentage)
print(female_percentage)

任何帮助将不胜感激。谢谢!

python-3.x pandas statistics
2个回答
0
投票

尝试一下:

df_new.groupby('gender')['values'].sum()/df_new['values'].sum()*100

gender
female    63.855422
male      36.144578
Name: values, dtype: float64

0
投票

使用t检验。在这种情况下,使用两次t检验,这意味着您正在比较两个样本的值/均值。

我正在应用另一种假设; A!= B我通过测试原假设A = B来做到这一点。这是通过计算p值来实现的。当p降到称为alpha的临界值以下时,我将拒绝原假设。 alpha的标准值为0.05。低于5%的概率,样本将产生类似于观察值的模式

提取样本,在这种情况下为values的列表

A=df[df['gender']=='male']['values'].values.tolist()
B=df[df['gender']=='female']['values'].values.tolist()

使用scipy库,进行t -test

from scipy import stats
t_check=stats.ttest_ind(A,B)
t_check
alpha=0.05
if(t_check[1]<alpha):
    print('A different from B')
© www.soinside.com 2019 - 2024. All rights reserved.