Comment convertir une colonne de DataFrame en chaîne de caractères dans Pandas

Jinku Hu 30 janvier 2023
  1. Série de DataFrame de Pandas astype(str) méthode
  2. Méthode DataFrame apply pour opérer sur les éléments d’une colonne
Comment convertir une colonne de DataFrame en chaîne de caractères dans Pandas

Nous introduirons des méthodes pour convertir la colonne Pandas DataFrame en string.

  • Méthode de la série Pandas DataFrame astype(str).
  • Méthode DataFrame appliquer pour opérer sur les éléments de la colonne

Nous utiliserons le même DataFrame ci-dessous dans cet article.

Python
 pythonCopyimport pandas as pd

df = pd.DataFrame({"A": [1, 2, 3], "B": [4.1, 5.2, 6.3], "C": ["7", "8", "9"]})

print(df)
print(df.dtypes)
 textCopy   A    B  C
0  1  4.1  7
1  2  5.2  8
2  3  6.3  9

A      int64
B    float64
C     object
dtype: object

Série de DataFrame de Pandas astype(str) méthode

Pandas Series astype(dtype) method convertit la série Pandas au type dtype spécifié.

Python
 pythonCopypandas.Series.astype(str)

Il convertit la colonne Series, DataFrame comme dans cet article, en string.

Python
 pythonCopy>>> df
   A    B  C
0  1  4.1  7
1  2  5.2  8
2  3  6.3  9
>>> df['A'] = df['A'].astype(str)
>>> df
   A    B  C
0  1  4.1  7
1  2  5.2  8
2  3  6.3  9
>>> df.dtypes
A     object
B    float64
C     object
dtype: object

La méthode astype() ne modifie pas les données de la DataFrame en place, donc nous devons assigner la Series de Pandas retournée à la colonne DataFrame spécifique.

Nous pourrions également convertir plusieurs colonnes en chaîne de caractères simultanément en mettant les noms des colonnes entre crochets pour former une liste.

Python
 pythonCopy>>> df[['A','B']] = df[['A','B']].astype(str)
>>> df
   A    B  C
0  1  4.1  7
1  2  5.2  8
2  3  6.3  9
>>> df.dtypes
A    object
B    object
C    object
dtype: object

Méthode DataFrame apply pour opérer sur les éléments d’une colonne

Python
 pythonCopyapply(func, *args, **kwds)

La méthode apply de DataFrame applique la fonction func à chaque colonne ou ligne.

Nous pourrions utiliser la fonction lambda à la place de func pour plus de simplicité.

Python
 pythonCopy>>> df['A'] = df['A'].apply(lambda _: str(_))
>>> df
   A    B  C
0  1  4.1  7
1  2  5.2  8
2  3  6.3  9
>>> df.dtypes
A     object
B    float64
C     object
dtype: object

Vous ne pourriez pas utiliser la méthode apply pour appliquer la fonction à plusieurs colonnes.

Python
 pythonCopy>>> df[['A','B']] = df[['A','B']].apply(lambda _: str(_))
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    df[['A','B']] = df[['A','B']].apply(lambda _: str(_))
  File "D:\WinPython\WPy-3661\python-3.6.6.amd64\lib\site-packages\pandas\core\frame.py", line 3116, in __setitem__
    self._setitem_array(key, value)
  File "D:\WinPython\WPy-3661\python-3.6.6.amd64\lib\site-packages\pandas\core\frame.py", line 3144, in _setitem_array
    self.loc._setitem_with_indexer((slice(None), indexer), value)
  File "D:\WinPython\WPy-3661\python-3.6.6.amd64\lib\site-packages\pandas\core\indexing.py", line 606, in _setitem_with_indexer
    raise ValueError('Must have equal len keys and value '
ValueError: Must have equal len keys and value when setting with an iterable
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Article connexe - Pandas DataFrame

Article connexe - Pandas DataFrame Column