0
私のデータフレームの最後のステップは、すべてのNaN値を0(ゼロ)に変換することです。私のデータフレームには1000以上の列があり、いくつかはテキストであり、いくつかは整数であり、いくつかは浮動小数点です。これを何pandas dataframe; NaNを0に変換する際のエラー
Traceback (most recent call last):
File "pythonscript_v8.py", line 233, in <module>
df5c[col] = df5c[col].fillna(0).astype(int)
File "/usr/lib/python3/dist-packages/pandas/core/generic.py", line 2632, in astype
dtype=dtype, copy=copy, raise_on_error=raise_on_error, **kwargs)
File "/usr/lib/python3/dist-packages/pandas/core/internals.py", line 2864, in astype
return self.apply('astype', dtype=dtype, **kwargs)
File "/usr/lib/python3/dist-packages/pandas/core/internals.py", line 2823, in apply
applied = getattr(b, f)(**kwargs)
File "/usr/lib/python3/dist-packages/pandas/core/internals.py", line 430, in astype
values=values, **kwargs)
File "/usr/lib/python3/dist-packages/pandas/core/internals.py", line 472, in _astype
values = com._astype_nansafe(values.ravel(), dtype, copy=True)
File "/usr/lib/python3/dist-packages/pandas/core/common.py", line 2463, in _astype_nansafe
return lib.astype_intsafe(arr.ravel(), dtype).reshape(arr.shape)
File "pandas/lib.pyx", line 935, in pandas.lib.astype_intsafe (pandas/lib.c:16612)
File "pandas/src/util.pxd", line 60, in util.set_value_at (pandas/lib.c:66830)
ValueError: invalid literal for int() with base 10: 'NODE_1_length_402490_cov_43.5825_ID_1'
:私は次のエラーを与える新しいデータで新しい列を追加するまで、これがうまく働いた
#replace nan in columns with 0
nan_cols = df5c.columns[df5c.isnull().any(axis=0)]
for col in nan_cols:
df5c[col] = df5c[col].fillna(0).astype(int)
: は、私は、次のコマンドを使用し、0にはNaNを変換するにはエラーの平均と、どのように私はこれを解決することができますか?私はこれが動作する問題を正しく理解していた場合
source contigID contig_length SCM/genes plasmid_genes/genes A053_1 parA_1
COLS157_1 NODE_1_length_402490_cov_43.5825_ID_1 402490 0.87 0.95 NaN NaN
COLS157_10 NODE_10_length_218177_cov_45.105_ID_19 218177 0.79 0.97 NaN NaN
COLS157_100 NODE_157_length_248_cov_34.4628_ID_313 248 NaN NaN NaN NaN
COLS157_11 NODE_11_length_176130_cov_51.1495_ID_21 176130 0.75 0.86 NaN NaN
COLS157_12 NODE_12_length_165446_cov_50.2044_ID_23 165446 0.77 0.88 NaN NaN
は、それはあなたが整数にそれを変換することはできませんカラムとパンダの1の値 ' 'NODE_1_length_402490_cov_43.5825_ID_1''があることを意味します。 fillna部分ではなく、エラーを発生させる '.astype(int)'です。 – ayhan
データを見ることなく伝えるのは難しいですが、文字列をintに変換しようとしているようです。特定の列の値のいずれかが欠落している場合は、列全体をループしていることが原因です。いくつかのデータを投稿できますか? – spies006