【问题标题】:Performing a T-test to check a column in two different csv files执行 T 检验以检查两个不同 csv 文件中的列
【发布时间】:2018-09-03 20:35:46
【问题描述】:

我有 2 个 csv 文件与此类似:

date,high,low,precip
1-Jan,43,41,0
2-Jan,50,25,0
3-Jan,51,25,0
4-Jan,44,25,0
5-Jan,36,21,0
6-Jan,39,20,0
7-Jan,47,21,0.04
8-Jan,30,14,0
9-Jan,30,12,0
10-Jan,35,12,0
11-Jan,42,15,0
12-Jan,55,29,0
13-Jan,57,29,0
14-Jan,61,33,0
15-Jan,52,46,0.1

我需要对“高”列进行 T 检验,但我还没有找到很多方法来做到这一点。我已经使用这个导入了总和:

import pandas as pd
import re, csv
from scipy.stats import ttest_ind
high_mean = round(pd.read_csv(r'2010-Jan-June.csv', usecols=['high'], squeeze=True).mean(), 1)
high_mean17 = round(pd.read_csv(r'2017-Jan-June.csv', usecols=['high'], squeeze=True).mean(), 1)

但我不确定如何使用我那里的数据来运行 t 检验。

【问题讨论】:

    标签: python pandas csv statistics


    【解决方案1】:

    我认为你在正确的轨道上

    from scipy.stats import ttest_ind
    high_mean = pd.read_csv(r'2010-Jan-June.csv', usecols=['date','high'], squeeze=True).set_index('date')
    high_mean17 = pd.read_csv(r'2017-Jan-June.csv', usecols=['date','high'], squeeze=True).set_index('date')
    
    ttest_ind(high_mean.values,high_mean17.values)
    

    基于文档数组必须具有相同的形状,除了轴对应的维度(默认为第一个)

    所以在进行 t 检验之前,您应该确保 2017 年和 2010 年的数据点长度相同。我这里用pd.concat实现内连接

    s=pd.concat([high_mean,high_mean17],axis=1,join='inner')
    
    high_mean=s.iloc[:,0]
    high_mean17=s.iloc[:,1]
    

    【讨论】:

    • 绝对是同一个号码。这些文件只有 1 月 1 日至 6 月 30 日的数据,一个来自 2010 年,一个来自 2017 年。我需要日期列有什么原因吗?
    • 另外,奇怪的是,@Wen,我收到了 NameError: name 'stats' is not defined 错误。
    • @ArchivistG 好的,你可以在from scipy.stats import ttest_ind之后做 ttest_ind
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    相关资源
    最近更新 更多