1

我有一个熊猫数据框,想计算这些值的密度分布函数。有这样的东西会很好:

df['col_name'].dens()

但是,如果不存在类似的东西,我可以将所有这些值放到一个列表中,然后使用其他一些函数来计算列表中值的密度分布函数。如果我可以在以下任何一个包中做到这一点,那就太好了:scipy, numpy, ipython, scikit.

4

2 回答 2

3

您可以使用scipy.stats.gaussian_kde并将其传递给数据框列:

df = pd.DataFrame(data={'a':np.random.randn(100)}) # 100 normally distributed values
g = sp.stats.gaussian_kde(df.a)
[g(x)[0] for x in np.linspace(-3,3,10)]

给出:

[0.010404194709511637,
 0.028412197910606129,
 0.093548960033717946,
 0.1915548075057672,
 0.29626128014747688,
 0.3402226687259407,
 0.29679380013692241,
 0.15516355334523385,
 0.057147975947743457,
 0.020153062250794138]
于 2013-07-05T16:47:26.163 回答
1

如果你想要的只是一个密度图:df['col_name'].plot(kind='density')

于 2013-07-05T16:25:36.880 回答