尝试pd.concat时,我得到了意外的NaN值。怎么处理呢? PCA和T-SNE

时间:2018-06-21 13:36:27

标签: python python-3.x pandas pca dimensionality-reduction

我正在尝试使用PCA减小数据的尺寸,但是,当我使用concat时,它将自动生成NaN值。同样,客户年龄在转换为int时变得浮动。有人可以告诉我如何解决这个问题吗? 如果您能告诉我是否应该使用PCA或tSNE来可视化具有14个变量的数据(其中有一个列仅包含12000个中的4个不同的变量(1,2,3,4)),也将不胜感激。值,则有两列包含布尔值)。

x and y

# Separating out the Demographic Data.

x = Demo_Data.values

# Separating out the Target as regions. 
y = df2.loc[:,['Customer_Age']].values

# Standardizing the features
scaler = StandardScaler()
x = scaler.fit_transform(x)

from sklearn.decomposition import PCA
pca = PCA(n_components=2)
Demography_Data = pca.fit_transform(x)
principalDf = pd.DataFrame(data = Demography_Data
             , columns = ['Demography_Data 1', 'Demography_Data 2'])
finalDf = pd.concat([principalDf, df2[['Customer_Age']]], axis = 1)

1 个答案:

答案 0 :(得分:0)

您的index中的DataFrame不匹配:

>>> import pandas as pd
>>> df1 = pd.DataFrame([11,22,33])
>>> df2 = pd.DataFrame([111,222,333], index=[1,2,3])
>>> pd.concat((df1,df2),axis=1)
      0      0
0  11.0    NaN
1  22.0  111.0
2  33.0  222.0
3   NaN  333.0

但是:

>>> df2.index=df1.index
>>> pd.concat((df1,df2),axis=1)
    0    0
0  11  111
1  22  222
2  33  333