熊猫groupby()。std()返回与np.std不同的值

时间:2019-12-17 11:31:08

标签: python pandas dataframe pandas-groupby std

我遇到pandas.groupby()的以下问题:我有一个可以分为几组的数据集,但是当我计算标准差时,根据使用groupby()还是使用import numpy as np import pandas as pd df = pd.DataFrame({ 'data': np.append(np.random.normal(1,1,10),np.random.normal(-1,1,10)), 'type': np.append(np.ones(10), 2*np.ones(10)) }) ,我得到不同的结果。手动拆分组。

这是一个有效的示例:

groupby()

(下面,如果要精确复制,请粘贴实际值。)

这就是我使用df.groupby('type').std() data type 1.0 0.670406 2.0 1.235369 的结果:

type==1

这就是我要手动计算np.std(df[ df.type==1 ].data) 0.6360030713759871 的标准偏差的原因:

0.670

我真的不知道发生了什么,任何人都可以解释一下吗? 为什么我在第一种情况下得到0.636而在第二种情况下得到groupby().std()
我无法理解这些值的不同之处,因为numpy.std()应该在后台运行df.values array([[ 2.1472923 , 1. ], [ 1.92915175, 1. ], [ 2.94089156, 1. ], [ 1.88584446, 1. ], [ 0.69798067, 1. ], [ 1.56013451, 1. ], [ 2.83390388, 1. ], [ 1.57214222, 1. ], [ 1.41883281, 1. ], [ 1.50841901, 1. ], [-1.43944992, 2. ], [-0.57068851, 2. ], [-1.67287795, 2. ], [-2.14790187, 2. ], [-0.01767844, 2. ], [-1.11745803, 2. ], [-2.25692655, 2. ], [ 0.38472557, 2. ], [-0.57914187, 2. ], [ 1.73321436, 2. ]]) ,对吧?


/profile

0 个答案:

没有答案