les pandas distinction entre str et les types d'objets

Numpy semble faire une distinction entre str et object types. Par exemple je peux le faire ::

>>> import pandas as pd
>>> import numpy as np
>>> np.dtype(str)
dtype('S')
>>> np.dtype(object)
dtype('O')

Où dtype('S') et dtype('O') correspond à str et object respectivement.

Cependant pandas semblent absence de cette distinction et de contraindre 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')

Forcer le type à dtype('S') n'aide pas non plus. ::

>>> df.a.astype(np.dtype(str)).dtype
dtype('O')
>>> df.a.astype(np.dtype('S')).dtype
dtype('O')

Est il une explication à ce comportement?

Comme une très brève explication qui n'est pas une réponse: Si vous utilisez une chaîne dtype dans numpy, c'est fondamentalement une largeur fixe c-comme chaîne de caractères. Dans pandas, ils sont "normaux" python chaînes, ainsi que le type d'objet.
Cela peut répondre à votre question - stackoverflow.com/questions/21018654/... - fondamentalement, ils stockent objet ndarray, pas de chaînes dans ndarray. Cependant, je ne l'appui qu'ils auraient pu être plus clair quand il s'agit de distinguer les types - par exemple, avoir une capacité à distinguer 'str' de 'mixte' colonnes qui sont également déclarés comme "O".

OriginalL'auteur Meitham | 2016-01-19