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

Jinku Hu 30 Januar 2023
  1. Pandas DataFrame Series.astype(str) Methode
  2. DataFrame apply-Methode zur Bearbeitung von Elementen in der Spalte
Wie man eine DataFrame-Spalte in eine Zeichenkette in Pandas konvertiert

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

Verwandter Artikel - Pandas DataFrame

Verwandter Artikel - Pandas DataFrame Column