string型をint型に直したところ、
欠損値がなかったのに、欠損値が生成されてしまいました。
最初のdftest_train[preds_name].isnull().any()ではFalseなのに、
データ成形後
次のdftest_train[preds_name].isnull().any()ではTrueになっている(欠損値あり)
なぜなのか、教えて頂けると幸いです。
よろしくお願いします。
python
1print(df.shape) 2print(dftest.shape) 3print(df_train.shape) 4print(dftest_train.shape) 5print(df_train[preds_name].isnull().any()) 6print(dftest_train[preds_name].isnull().any())
(6461, 157)
(4273, 157)
(6461, 157)
(4272, 157)
False
False
python
1# 間違っているセル(2019/06/26) 2if len(df_train.loc[:, :preds_name]) != 0: 3 # df_train用 4 # object型の要素をint, float型に変換する 5 # object型の要素を探す 6 factorize = [] 7 for i, j in zip(df_train.columns, df_train.dtypes): 8 factorize.append(i) 9 # 0~要素数の種類の数を割り当てる 10 for i in factorize: 11 id_1, id_2 = df_train[i].factorize() 12 id_3 = pd.DataFrame({i: id_1}) 13 df_train[i] = id_3 14 del factorize 15 16if len(dftest_train.loc[:, :preds_name]) != 0: 17 # dftest_train用 18 # object型の要素をint, float型に変換する 19 # object型の要素を探す 20 factorize = [] 21 for i, j in zip(dftest_train.columns, dftest_train.dtypes): 22 factorize.append(i) 23 # 0~要素数の種類の数を割り当てる 24 for i in factorize: 25 id_1, id_2 = dftest_train[i].factorize() 26 id_3 = pd.DataFrame({i: id_1}) 27 dftest_train[i] = id_3 28 del factorize 29print(df_train[preds_name].isnull().any()) 30print(dftest_train[preds_name].isnull().any()) 31print(len(df_train)) 32print(len(dftest_train)) 33print(len(df_test)) 34print(len(dftest_test)) 35print(df_train.loc[0, preds_name])
False
True
6461
4272
0
1
0
あなたの回答
tips
プレビュー