【发布时间】:2015-04-12 05:10:57
【问题描述】:
我想比较两个样本的均值差异,通过以下 pandas DataFrame 中的变量 sample 区分:
import numpy as np
import pandas as pd
df = pd.DataFrame({'sample': np.random.choice([1, 2], 10, replace=True),
'x': np.random.uniform(size=100),
'y': np.random.normal(size=100),
'z': np.random.choice([1,5,7,3,9],100, replace=True})
导入后
from scipy import stats
我想使用该功能
stats.ttest_ind(s1, s2, equal_var = False)
在df 中的每一列z 上,使得s1=df['sample'==1, z] 对应于样本1 中列的子集,s2=df['sample'==2, z] 对应于样本2 中z 的子集。
对于一个变量,我可以使用:
stats.ttest_ind(df.ix[df['sample']==1, 'x'], df.ix[df['sample']==2, 'x'], equal_var= False)
我正在寻找一种方法来一次对所有列执行此操作。我怎样才能做到这一点?
【问题讨论】:
标签: python-2.7 python-3.x for-loop numpy pandas