我想比较数据集的统计数据,例如平均值、标准差等,以虚拟变量为条件。我在某处看到了一个命令,但我不记得了(或者谷歌搜索不成功)。我想产生这样的输出:
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'])
最佳答案
我相信你想要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
关于python - 分类变量 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51349283/