我在Pandas中正常化数据时遇到了一些麻烦。我创建了一个模型并试图用它来预测。熊猫:数据正常化时获取0和NaN
首先,我有这样的:
_text_img_count _text_vid_count _text_link_count _text_par_count ...
0 2 0 6
然后我正常化如下:现在
x = numeric_df.values #returns a numpy array
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(x)
numeric_df_normalized = pd.DataFrame(x_scaled)
,numeric_df_normalized
看起来是这样的:
0 1 2 3 4 5 6 7 8 9 ... 13 14 15 16 \
0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
17 18 19 20 21 22
0 0.0 0.0 0.0 0.0 0.0 0.0
所以我失去了我列名和我的数值全部为0.
最后,我尝试从原来的numeric_df
加回旧列名称如下:
numeric_df_normalized = pd.DataFrame(numeric_df_normalized, columns=numeric_df.columns)
我回去:
_text_img_count _text_vid_count _text_link_count ...
NaN NaN NaN
那么几个问题:
1)为什么标准化是否会导致我失去列名并将它们设置为0?
2)为什么添加从numeric_df
列名称导致我的0被转换为NaN?
谢谢!
什么是x(x.max()和x.min())的最小值和最大值? –
1.检查最小值和最大值。 2.您正在从数据框创建数据框...最好使用这个:numeric_df_normalized = pd.DataFrame(x_scaled,columns = numeric_df.columns) –