groupby() 上的 ptest python

ptest on groupby() python

我的数据框如下:

Region   Votes

    A          23
    B          26
    A          32
    B          46
    A          32
    B          24

我通过以下代码 data.groupby('Region')['Votes'].mean() 计算了区域 A 和 B 的投票平均值。现在我必须进行 ptest 以确定这种差异是否具有统计意义 significant.I 尝试了此代码

one = data[data['Region']=='one']
two = data[data['Region']=='two']

print(st.ttest_ind(one['Votes'], two['Votes'])).

我在输出中得到的是 nan 而不是值,即

  Ttest_indResult(statistic=nan, pvalue=nan)

有人可以告诉我我做错了什么吗?

如果你改变:

one = data[data['Region']=='one']
two = data[data['Region']=='two']

one = data[data['Region']=='A']
two = data[data['Region']=='B']

它会起作用的。或者,使用以下方式一次完成所有操作:

st.ttest_ind(data.loc[data.Region == 'A', 'Votes'], data.loc[data.Region == 'B', 'Votes'])
#Ttest_indResult(statistic=-0.3927922024247863, pvalue=0.7145066681331176)

或者使用groupby,首先将每个区域的Votes转换为列表:

gb = df.groupby('Region')['Votes'].apply(list)
st.ttest_ind(*gb)
#Ttest_indResult(statistic=-0.3927922024247863, pvalue=0.7145066681331176)