Comment convertir une colonne de DataFrame en chaîne de caractères dans Pandas
-
Série de DataFrame de Pandas
astype(str)
méthode -
Méthode DataFrame
apply
pour opérer sur les éléments d’une colonne
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.
import 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)
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é.
pandas.Series.astype(str)
Il convertit la colonne Series, DataFrame comme dans cet article, en string
.
>>> 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.
>>> 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
apply(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é.
>>> 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.
>>> 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
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 FacebookArticle connexe - Pandas DataFrame
- Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
- Comment supprimer une colonne de Pandas DataFrame
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment convertir un float en un entier dans Pandas DataFrame
- Comment trier le DataFrame de Pandas par les valeurs d'une colonne
- Comment obtenir l'agrégat des Pandas par groupe et par somme