1. ホーム
  2. python

[解決済み】NumPyかPandasか。NaNを持ちながら配列の型を整数に保つ

2022-04-15 21:48:23

質問

のデータ型を保持するための好ましい方法はありますか? numpy として固定された配列です。 int (または int64 などと表示されたまま、中の要素が numpy.NaN ?

特に、私は社内のデータ構造をPandas DataFrameに変換しています。私たちの構造体では、まだNaNを持つ整数型の列があります(しかし、列のdtypeはintです)。これをDataFrameにすると、すべてをfloatに再キャストするようですが、私たちが本当に望むのは int .

感想は?

試してみたこと

を使ってみました。 from_records() という関数で、pandas.DataFrame の下にある coerce_float=False で、これは役に立ちませんでした。また、NumPyのマスク配列をNaNのfill_valueで使ってみましたが、これもうまくいきませんでした。これらはすべて、列のデータ型がfloatになる原因でした。

解決するには?

この機能は pandas に追加されました(バージョン 0.24 以降)。 https://pandas.pydata.org/pandas-docs/version/0.24/whatsnew/v0.24.0.html#optional-integer-na-support

このとき、デフォルトのdtype int64(小文字)ではなく、拡張dtype Int64(大文字)を使用する必要があります。