Toujours Aya! J'ai écrit le code et sorti la moyenne et la covariance plusieurs fois, mais notez-le. Le contenu est vraiment simple. Il n'y a aucune torsion. Je suis désolé.
Situation: j'ai des données sur les pandas et je veux trouver la moyenne et la covariance pour des données spécifiques X, Y, Z
Le point est --Utilisez `` .loc '' pour spécifier et extraire le nom des données dans DataFrame. --DataFrame a mean (), cov (), corr () et la sortie est DataFrame, donc référez-vous à ndarray dans les valeurs.
from pandas import DataFrame
from numpy import random
import json
df = DataFrame(random.randint(0,100,size=(252, 4)), columns=list('XYZW'))
output_data = dict()
# 1. extract XYZ
df_xyz = df.loc[:,list("XYZ")]
# 2-1 mean vector
u = df_xyz.mean()
output_data["mean"] = u.values.tolist()
# 2-2 covariance
s = df_xyz.cov()
output_data["covariance"] = s.values.tolist()
# 3
with open("out.json", 'w') as f:
json.dump(output_data, f, indent=2)
Le fichier json de sortie est
{
"mean": [
48.34126984126984,
50.52777777777778,
51.492063492063494
],
"covariance": [
[
877.6360589388478,
-44.88202744577245,
-71.94548788971099
],
[
-44.88202744577245,
876.4733289065962,
-32.312527667109336
],
[
-71.94548788971099,
-32.312527667109336,
784.7768291911716
]
]
}
est.
J'ai fait quelques recherches jusqu'à ce que j'arrive à cette implémentation. (Transpiration) La covariance DataFrame peut être trouvée dans le document API (ici).
(2020/05/11)
from numpy import isnan
if isnan(x).any():
x = zeros(3)
if isnan(S).any():
S = zeros( (3,3) )
Recommended Posts