【发布时间】:2016-06-04 07:35:42
【问题描述】:
我是 pandas 数据框的新手,希望能帮助我解决以下问题(类似于 this)。我有以下数据:
data = {'Cat1': [2,1,2,1,2,1,2,1,1,1,2],
'Cat2': [0,0,0,0,0,0,1,1,1,1,1],
'values': [1,2,3,1,2,3,1,2,3,5,1]}
my_data = DataFrame(data)
我想为Cat2 中的每个类别执行ttest_ind 以区分Cat1 中的类别。
在我看来,我可以将数据分成
cat1_1 = my_data[my_data['Cat1']==1]
cat1_2 = my_data[my_data['Cat1']==2]
然后循环遍历Cat2 中的每个值以执行 t 检验:
for cat2 in [0,1]:
subset_1 = cat1_1[cat1_1['Cat2']==cat2]
subset_2 = cat1_2[cat1_2['Cat2']==cat2]
t, p = ttest_ind(subset_1['values'], subset_2['values'])
但这似乎真的很令人费解。有没有更简单的解决方案,也许是groupby?非常感谢!
【问题讨论】:
-
你可以尝试合并两个dfs
-
@galaxyan 你能详细说明你的意思吗?谢谢!
-
但是我已经有一个数据框了。我想我正在寻找很好地拆分数据的方法,而不是合并,对吧?但我很高兴听到您想到的解决方案!