在groupby()python上测试

2024-05-15 21:33:13 发布

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

我的数据帧如下:

Region   Votes

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

我按照代码data.groupby('Region')['Votes'].mean()计算了A区和B区的平均投票数。现在我要做ptest来确定这个差异是否有统计学意义。我尝试了这个代码

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)

有人能告诉我我做错了什么吗?你知道吗


Tags: 数据代码data差异nanmeanoneregion
1条回答
网友
1楼 · 发布于 2024-05-15 21:33:13

如果您更改:

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)

相关问题 更多 >