Maison >développement back-end >Tutoriel Python >Pourquoi les chaînes dans les DataFrames Pandas apparaissent-elles comme des objets même après la conversion ?
Pourquoi les chaînes d'un DataFrame sont-elles stockées en tant qu'objets ?
Malgré la conversion explicite des colonnes DataFrame contenant des chaînes en type de données chaîne, la bibliothèque Pandas de Python peut toujours les signaler comme objets. Cette différence est due aux structures de données sous-jacentes de NumPy.
NumPy utilise des ndarrays pour stocker des tableaux de données, chaque élément d'un ndarray ayant un nombre fixe d'octets. Pour les entiers (int64) et les nombres à virgule flottante (float64), chaque élément occupe 8 octets. Cependant, les chaînes ont des longueurs variables, ce qui rend difficile leur stockage directement dans un ndarray.
Pour répondre à cela, Pandas utilise des ndarrays d'objets pour stocker des pointeurs vers des objets. Ces objets contiennent les valeurs de chaîne réelles. Par conséquent, les ndarrays d'objets ont une taille indéterminée et sont représentés comme le type de données « objet ».
Exemple :
Considérons un tableau int64 contenant quatre 64 bits des entiers et un tableau d'objets contenant quatre pointeurs vers trois objets chaîne :
int64 array: | 1 | 2 | 3 | 4 | object array: | pointer to "hello" | pointer to "world" | pointer to "!" | Visualization: +---------+-----------+ | int64 | object | |---------+-----------| | 1 | hello | | 2 | world | | 3 | ! | | 4 | null | +---------+-----------+
Dans cette représentation, le tableau int64 occupe une quantité d'espace fixe, chaque élément faisant 8 octets. D'autre part, le tableau d'objets stocke des pointeurs vers des objets de différentes tailles, d'où le type de données « objet ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!