環境
- Python 3.12.4
- pandas 2.2.3
- numpy 1.26.4
内容
以下のドキュメントに書いてある通り、pandas.Series
に対して値を設定する操作でアップキャストが発生すると、警告メッセージが表示されます。
In [220]: ser = pd.Series([1, 2, 3])
In [223]: ser
Out[223]:
0 1
1 2
2 3
dtype: int64
In [225]: ser[0] = 'not an int64'
<ipython-input-221-54fde2c4392f>:1: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value 'not an int64' has dtype incompatible with int64, please explicitly cast to a compatible dtype first.
ser[0] = 'not an int64'
In [229]: ser
Out[229]:
0 not an int64
1 2
2 3
dtype: object
しかし、存在しないindexに対して値を設定する場合は、警告メッセージは表示されません。
In [222]: ser = pd.Series([1, 2, 3])
In [224]: ser[3] = 'not an int64'
In [225]: ser
Out[225]:
0 1
1 2
2 3
3 not an int64
dtype: object
pandas.Series
に対して値を設定する場合は、そのインデックスが存在するかどうかを意識する必要がありそうです。