2017-06-05 9 views
-1

次のコードは、バージョンが0.20のマシンでPandasのバージョンが0.16.2のサーバにAttributeErrorを投げています。AttributeError: 'module'オブジェクトには、 'to_numeric'という属性がありません。

Traceback (most recent call last): 
    File "train_model.py", line 11, in <module> 
    df = df.drop(df[pandas.to_numeric(df[599], errors='coerce').isnull()].index) 
AttributeError: 'module' object has no attribute 'to_numeric' 

0.16.2バージョンでこのエラーを回避する方法はあります:

df = pandas.read_csv('filename', header = None, error_bad_lines = False, warn_bad_lines =True,quoting=csv.QUOTE_NONE) 

df = df.drop(df[pandas.to_numeric(df[599], errors='coerce').isnull()].index) 

エラーメッセージは、次のでしょうか?サーバーへの更新はできません。

答えて

1

バージョン0.17の新機能のパンダのドキュメントに気付いた場合、 あなたはそのため

pd.to_numeric is a new function to coerce strings to numbers (possibly with coercion) (GH11133)

に気づくものと、0.16が機能pd.to_numericを持っていないパンダ。ただし、この機能を使用して同じ目的を達成できます。

df = df.drop(df[df[599].astype(float).isnull()].index) 
2

Pandas.to_numericはバージョン0.17以降でのみ使用できます。代わりにDataFrame.convert_objectsconvert_numeric=True引数を使用すると、エラーは自動的に強制的に強制されます。

df = df.drop(df[df[599].convert_objects(convert_numeric=True).isnull()].index) 
+0

ここでは構文の問題があります。クロスチェックしていただけますか? – user3667569

+0

@ user3667569これで申し訳ありません。あなたのコードに 'df.convert_objects(convert_numeric = True)'を正しくコピーして通過できませんでした。 nullフィールドを削除していたことに気付かなかった。そのためには '.dropna()'を使うことができます。私があなたのロジックを正しく理解していれば、同じことをするはずです。 – umutto

+0

私はNULLフィールドを削除しません。私のコードの意図は、列599に浮動小数点値を持つデータフレームから行を削除することでした。 – user3667569

関連する問題