1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pandas 2.1.4 と 2.2.0 での 整数型 Series のmap(str)挙動の違いとその対応

Posted at

Prerequisite

import pandas as pd

ser = pd.Series([1, 2, 3, None], dtype="Int8")

以下のように、NA型を含新しいIntのSeries型を文字列に変更しようとすると、挙動の違いがある。これによりパイプラインが破壊され3時間奪われた。

2.1.4

>>> ser.map(str)
0       1
1       2
2       3
3    <NA>
dtype: object

2.2.0

>>> ser.map(str)
0    1.0
1    2.0
2    3.0
3    nan
dtype: object

取った対応

現状 pandas を2.2.3まで上げているので明示的に string 型とした。 PDEP-14によると v3.0 で stringの再編成が行われるが、この指定で問題はない。

>>> ser.astype("string")
0       1
1       2
2       3
3    <NA>
dtype: string

以上。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?