前提・実現したいこと
機械学習における、データフレームの処理についてです。
データフレームで欠損値(様々な理由により計算されなかった記述子で具体的にはdivide by zero encountered in power (mZagreb1)などのアルファベットです)を含むコラム(列)を削除したいのですが、それらはそのままではNaNと認識されないため、dropnaなどがこのままでは使えません。そこで欠損値がアルファベットであることを利用してdtypeがint, np.int64, float, np.float64以外の要素をNaNに置き換えようとDataframe.replaceを用いたいのですが、エラーが出ました。
発生している問題・エラーメッセージ
AttributeError Traceback (most recent call last)
<ipython-input-71-1d526834871a> in <module>()
1 for i in range(0, 4838):
2 for j in range(1,3661):
----> 3 if not D1.iloc[i, j].dtype=='int' or 'np.int64' or 'float' or 'np.float64':
4 D1.replace(D1.iloc[i, j], np.nan)
AttributeError: 'float' object has no attribute 'dtype'
該当のソースコード
for i in range(0, 4838):
for j in range(1,3661):
if not D1.iloc[i, j].dtype=='int' or 'np.int64' or 'float' or 'np.float64':
D1.replace(D1.iloc[i, j], np.nan)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
なお、D1は4838行×3661列のデータフレームであり、一番左の一列を除くすべてが置き換えの対象です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/21 00:50
2018/04/24 02:42 編集