Кажется, что Numpy делает различие между типами str
и object
. Например, я могу сделать:
>>> import pandas as pd
>>> import numpy as np
>>> np.dtype(str)
dtype('S')
>>> np.dtype(object)
dtype('O')
Где dtype ('S') и dtype ('O') соответствуют str
и object
соответственно.
Однако pandas, похоже, не имеет такого различия и принуждения str
до object
.::
>>> df = pd.DataFrame({'a': np.arange(5)})
>>> df.a.dtype
dtype('int64')
>>> df.a.astype(str).dtype
dtype('O')
>>> df.a.astype(object).dtype
dtype('O')
Принуждение к типу dtype('S')
тоже не помогает.::
>>> df.a.astype(np.dtype(str)).dtype
dtype('O')
>>> df.a.astype(np.dtype('S')).dtype
dtype('O')
Есть ли объяснения этого поведения?