我想比较以虚拟变量为条件的数据集的统计数据,例如均值,标准差等。我在某个地方看到了该命令,但我不记得了(或者谷歌搜索不成功)。我想产生这样的输出:
dummy mean(var1) mean(var2)
0 1.5 3
1 10 10
也许与groupby有关?
这是一个最小的示例:
dict1 = [{'dummy': '0', 'var1': 1, 'var2': 2},
{'dummy': '0', 'var1': 2, 'var2': 4},
{'dummy': '1', 'var1': 5, 'var2': 8},
{'dummy': '1', 'var1': 15, 'var2': 12},]
df = pd.DataFrame(dict1, index=['s1', 's2','s3','s4'])
答案 0 :(得分:2)
我相信您想要groupby
+ describe
ndf = df.groupby('dummy').describe()
然后只需选择所需的任何信息
ndf.loc[:, ndf.columns.get_level_values(1)=='mean']
var1 var2
mean mean
dummy
0 1.5 3.0
1 10.0 10.0
describe
可能更强大,因为它将为您提供许多不同的统计信息。但是当然您可以选择方法,例如
df.groupby('dummy').mean()
var1 var2
dummy
0 1.5 3.0
1 10.0 10.0
df.groupby('dummy').std()
var1 var2
dummy
0 0.707107 1.414214
1 7.071068 2.828427