Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 执行T检验以检查两个不同csv文件中的列_Python_Pandas_Csv_Statistics - Fatal编程技术网

Python 执行T检验以检查两个不同csv文件中的列

Python 执行T检验以检查两个不同csv文件中的列,python,pandas,csv,statistics,Python,Pandas,Csv,Statistics,我有两个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,

我有两个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
我需要对“high”列进行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)
根据文档,数组必须具有相同的形状,但与轴对应的维度除外(默认情况下为第一个维度)

因此,在进行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]

我认为你的思路是对的

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,我得到了一个
name错误:name'stats'没有定义
错误。@ArchivistG好的,你可以在你从scipy.stats导入ttest\u ind后执行ttest\u ind。它肯定是相同的数字。这些文件只有1月1日至6月30日的数据,一份来自2010年,一份来自2017年。我需要日期栏有什么原因吗?另外,奇怪的是,@Wen,我得到了一个
名称错误:名称“stats”没有定义
错误。@ArchivistG好的,你可以在从scipy.stats导入ttest\u ind后执行ttest\u ind