分类变量熊猫

时间:2018-07-15 14:20:03

标签: python pandas pandas-groupby

我想比较以虚拟变量为条件的数据集的统计数据,例如均值,标准差等。我在某个地方看到了该命令,但我不记得了(或者谷歌搜索不成功)。我想产生这样的输出:

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'])

1 个答案:

答案 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