KeyError при попытке построить PCA приводит к 3d - PullRequest
0 голосов
/ 18 марта 2020

Я выполнил анализ PCA для имеющегося у меня кадра данных, но по какой-то причине, когда я пытаюсь построить его, я получаю сообщение об ошибке keyValue, даже если я правильно скопировал имя столбца.

Так я вычисляю PCA:

#The libraries I have used

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from sklearn.decomposition import PCA
from scipy.stats import zscore
from scipy.signal import savgol_filter
from sklearn.manifold import TSNE
import seaborn as sns
from mpl_toolkits.mplot3d import Axes3D
%matplotlib inline


from sklearn.decomposition import PCA

#PCA function
def pca_func(df):
    pca=PCA(n_components=3)
    df_PCA = pca.fit_transform(df)
    df_PCA = pd.DataFrame(df_PCA)
    df_PCA.index = df.index
    df_PCA.columns = ['PCA 1','PCA 2','PCA 3']
    return df_PCA


def StandardNormalVariate(df):
    SNV_df = df.T.apply(zscore).round(3)
    SNV_df = SNV_df.T
    SNV_df.index= df.index
    SNV_df.columns = df.columns
    return SNV_df


#PCA

df_time.reset_index(inplace=True, drop=True)
df_PCA=pca_func(StandardNormalVariate(df_time.iloc[:,17:]))
df_PCA_merged=pd.merge(df_PCA, df_time, left_index=True, right_index=True)

df_PCA_merged.head()

Для этой части я получаю свой фрейм данных с правильными столбцами: enter image description here

, но затем, когда я пытаюсь построить, это не работает :

ax = plt.figure(figsize=(16,10)).gca(projection='3d')
ax.scatter(
    xs=df_PCA_merged.loc['PCA 1'], 
    ys=df_PCA_merged.loc['PCA 2'], 
    zs=df_PCA_merged.loc['PCA 3'],  
    cmap='tab10'
)
ax.set_xlabel('pca-one')
ax.set_ylabel('pca-two')
ax.set_zlabel('pca-three')
plt.show()

KeyError: 'PCA 1'

В чем может быть причина этой ошибки? как я могу это решить?

Моя цель - создать трехмерную диаграмму из трех компонентов.

...