ire*_*ene 7 python pandas scikit-learn
假设我对整数有以下观察结果:
df = pd.DataFrame({'observed_scores': [100, 100, 90, 85, 100, ...]})
Run Code Online (Sandbox Code Playgroud)
我知道这可以用作制作密度图的输入:
df['observed_scores'].plot.density()
Run Code Online (Sandbox Code Playgroud)
但假设我拥有的是一个计数表:
df = pd.DataFrame({'observed_scores': [100, 95, 90, 85, ...], 'counts': [1534, 1399, 3421, 8764, ...})
Run Code Online (Sandbox Code Playgroud)
这比完整observed_scores系列更便宜(我有很多观察)。
我知道可以使用计数绘制直方图,但如何绘制密度图?如果可能,是否可以在不必将计数表拆开/拆开成数千行的情况下完成?
IIUC,statsmodels让您可以拟合加权 KDE:
from statsmodels.nonparametric.kde import KDEUnivariate
df = pd.DataFrame({'observed_scores': [100, 95, 90, 85],
'counts': [1534, 1399, 3421, 8764]})
kde1= KDEUnivariate(df.observed_scores)
kde_noweight = KDEUnivariate(df.observed_scores)
kde1.fit(weights=df.counts, fft=False)
kde_noweight.fit()
plt.plot(kde1.support, kde1.density)
plt.plot(kde_noweight.support, kde_noweight.density)
plt.legend(['weighted', 'unweighted'])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1737 次 |
| 最近记录: |