执行t检验以检查两个不同CSV文件中的列



我有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检验运行的数据。

我认为你在正确的轨道

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)

基于doc 上的阵列必须具有相同的形状,除非在对应于轴(默认情况下的第一个(

的尺寸中

因此,在通过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]

最新更新