Wie man eine DataFrame-Spalte in eine Zeichenkette in Pandas konvertiert

  1. Pandas DataFrame Series.astype(str) Methode
  2. DataFrame apply-Methode zur Bearbeitung von Elementen in der Spalte

Wir werden Methoden zur Konvertierung von Pandas DataFrame-Spalte in String vorstellen.

  • Pandas DataFrame Series.astype(str) Methode
  • DataFrame apply-Methode zur Bearbeitung von Elementen in einer Spalte

Wir werden in diesem Artikel unten den gleichen DataFrame verwenden.

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

Pandas DataFrame Series.astype(str) Methode

Pandas Series astype(dtype) methode konvertiert die Pandas Series in den angegebenen dtype Typ.

pandas.Series.astype(str)

Sie konvertiert die Spalte Series, DataFrame wie in diesem Artikel in string (Zeichenkette).

>>> 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

Die astype() Methode modifiziert die DataFrame Daten nicht an Ort und Stelle, daher müssen wir die zurückgegebene Pandas Series der spezifischen DataFrame Spalte zuweisen.

Wir könnten auch mehrere Spalten gleichzeitig in Zeichenketten konvertieren, indem wir die Namen der Spalten in eckige Klammern setzen, um eine Liste zu bilden.

>>> 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

DataFrame apply-Methode zur Bearbeitung von Elementen in der Spalte

apply(func, *args, **kwds)

Die Methode apply() von DataFrame wendet die Funktion func auf jede Spalte oder Zeile an.

Wir könnten der Einfachheit halber die Funktion lambda anstelle von func verwenden.

>>> 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

Sie könnten nicht die Methode apply verwenden, um die Funktion auf mehrere Spalten anzuwenden.

>>> 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

Verwandter Artikel - Pandas DataFrame

  • Pandas DatenFrame kopieren
  • Pandas Dataframe in Dictionary umwandeln
  • Verwandter Artikel - Pandas DataFrame Column

  • Auswählen mehrerer Spalten in Pandas Dataframe
  • Pandas insert-Methode