在Python中使用不同数量的维度标准化数据

时间:2017-09-05 08:40:24

标签: python pandas dataframe

我的每行维度都有不同的数据框。我承认,我认为我应该使行维度的数量彼此相等。所以我在使用任何数据分析方法之前对数据执行了sklearn.preprocessing.StandardScaler。

0       1       2       3       4       5       6       7       8 
0.00    5.00    16.00   13.00   18.00   34.00   33.00   24.00   19.00
0.00    6.00    17.00   27.00   9.00    7.00    0.00    nan     nan
0.00    5.00    16.00   12.00   14.00   15.00   0.00    nan     nan 
0.00    8.00    0.00    nan     nan     nan     nan     nan     nan
0.00    5.00    10.00   32.00   17.00   24.00   25.00   26.00   10.00
0.00    5.00    14.00   16.00   17.00   19.00   10.00   6.00    0.00
0.00    8.00    8.00    15.00   24.00   10.00   9.00    0.00    nan
0.00    6.00    21.00   33.00   38.00   22.00   0.00    nan     nan
0.00    9.00    8.00    9.00    14.00   13.00   12.00   13.00   9.00

我使用了这段代码:

from sklearn.preprocessing import StandardScaler
sc_df = StandardScaler()
df = sc_df.fit_transform(df)

但它有错误:输入包含NaN,无穷大或dtype('float64')的值太大,因为我的数据包含NaN值。

如何对此数据执行数据分析?

编辑:空单元格不是噪音,它们是每一行的特征。

1 个答案:

答案 0 :(得分:0)

您需要用数字替换'NaN'值。

要替换NaN值,请使用:

public static void main(String[] args) {
    ArrayList<ArrayList> o = new ArrayList<>();
    ArrayList<Integer> al = new ArrayList<>();
    ArrayList<ArrayList<Integer>> o1 = new ArrayList<>();
    al.add(2);
    al.add(3);
    al.add(4);
    o1.add(al);
    o.add(o1);
    Integer i = 4;//Object which has to be searched
    System.out.println(search(o,i));//returning true
}

您可以将0更改为要用NaN替换NaN的任何其他数字。 在此之后,您可以应用缩放。