2016-11-08 14 views
-1

私はJupyterノートブックを使用しています。デフォルトのpythonカーネル。 'numpy'と 'pandas'がインポートされました。pd.to_numericがPythonで動作しません

この列の名前は「ピリオド」です。値には、「期間」のような数字とテキストが含まれます。データ型は 'object'です。列 'Period'の値が数値ではない行を削除したいと思います。 私がしようとしたのは、最初に列をオブジェクトから数値に変換することです。

​​

数値とNaNのリストを返しました。最後の行がある:

Name: Period, dtype: float64 

私は再びオンにした場合:

df['Period'].dtype 

それが返されます。

dtype('O') 

はどうやら変換が実際に動作しませんでした。次のコードでも、それは何も落としませんでした。

df.dropna(subset=['Period']) 

どうしたと思いますか?

答えて

1

to_numericのようなパンダの操作は、デフォルトで「インプレース」で動作しません。結果をデータフレームの列に割り当てることをお勧めします。

df['Period_numbers'] = pd.to_numeric(df['Period'], errors='coerce')

同じdropnaとなります。

ほとんどの場合、inplace=Trueをメソッドまたは関数に渡すことができます。しかし、私は本当に代わりに結果を割り当てることをお勧めします。あるいは

0

df[df['Period'].str.isnumeric()] 
+0

とValueError:ベクターによるインデックスはNA/NaN値を含むことができません – retirer

関連する問題