【发布时间】:2017-10-31 20:31:57
【问题描述】:
我想计算一个column dataframe中所有数据根据其自身分布的概率。例如,我的数据是这样的:
data
0 1
1 1
2 2
3 3
4 2
5 2
6 7
7 8
8 3
9 4
10 1
而我期望的输出是这样的:
data pro
0 1 0.155015
1 1 0.155015
2 2 0.181213
3 3 0.157379
4 2 0.181213
5 2 0.181213
6 7 0.048717
7 8 0.044892
8 3 0.157379
9 4 0.106164
10 1 0.155015
我也参考another question(How to compute the probability ...)得到了上面的例子。我的代码如下:
import scipy.stats
samples = [1,1,2,3,2,2,7,8,3,4,1]
samples = pd.DataFrame(samples,columns=['data'])
print(samples)
kde = scipy.stats.gaussian_kde(samples['data'].tolist())
samples['pro'] = kde.pdf(samples['data'].tolist())
print(samples)
但我不能忍受的是,如果我的专栏太长,会导致操作变慢。在pandas中是否有更好的方法?提前谢谢。
【问题讨论】:
标签: python-3.x pandas probability distribution