前提・実現したいこと
pythonのライブラリのpandasのDataFrameを用いて以下のような欠損データのある行列をゼロ埋めなどをせずに標準化(正規化)したいです。
発生している問題・エラーメッセージ
1.通常の欠損データがないcsvファイルに当てている事と同様のことをしても
値が保持されず空欄のままcsvで出力されてしまいます。
2.通常の行列であればpandasの機能(df.values.std()など)で行列全体の中での標準偏差や平均、最大値を返してくれることができるのですが、欠損のある行列だと、
In[]print(df.values.std()) print(df.values.mean()) print(df.values.max()) Out[]nan nan nan
となってしまっており、うまく行列全体の平均や標準偏差の値などを取得できていないようです
該当のソースコード
欠損データのない行列に関しては
df=pd.read_csv("test.csv",header=None) df_standard=(df - df.values.mean()) / (df.values.std()) df_standard.to_csv("test_standard.csv")
で行列全体を標準化できます
また、今回のtest.csvは
125.45,16252,0.032108,1.001,0,255 ,333,,44,1,6 ,,,243,2,4 ,,,1,3,7 ,,,1,4, ,,,-111,5,
です。
ですが、欲を言えば行数が異なる他のcsvファイルにも解決策が適用できるようにしたいです
補足情報(FW/ツールのバージョンなど)
pandas==0.25.1
numpy==1.17.2
scipy==1.3.1
scikit-learn==0.21.3
Python 3.7.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/28 11:40
2019/11/28 11:57
2019/11/28 11:58
2019/11/28 12:01
2019/11/28 12:09
2019/11/28 12:19
2019/11/28 13:01