【问题标题】:ptest on groupby() python在 groupby() python 上进行 ptest
【发布时间】:2019-04-20 03:35:28
【问题描述】:

我有一个如下的数据框:

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)

谁能告诉我我做错了什么?

【问题讨论】:

    标签: python group-by hypothesis-test


    【解决方案1】:

    如果你改变:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      • 2011-09-08
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多