Je veux calculer la probabilité de toutes les données dans une colonne dataframe selon sa propre distribution.Par exemple, mes données comme ceci:Comment puis-je calculer la probabilité de chaque valeur dans une colonne de données rapidement en Python?
data
0 1
1 1
2 2
3 3
4 2
5 2
6 7
7 8
8 3
9 4
10 1
et la sortie je me attends comme ceci:
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
Je me réfère également à another question(How to compute the probability ...) et obtenir un exemple du code above.My est la suivante:
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)
Mais ce que je ne peux pas supporter est que si ma colonne est trop longue, elle rend l'opération lente.Est-il un meilleur moyen de le faire dans les pandas? Merci d'avance.
Tout d'abord, je vous remercie de votre réponse. Deuxièmement, je voudrais demander si je peux obtenir la probabilité de la fonction de densité de probabilité. Si mon numéro n'appartient pas à la valeur ci-dessus, comment puis-je obtenir la probabilité. Par exemple, comment puis-je obtenir la probabilité d'une valeur de 1,5 selon la distribution de cette colonne? –