Pandas에서 DataFrame 열을 문자열로 변환하는 방법

  1. Pandas Series.astype(str)방법
  2. 열의 요소에서 작동하는 DataFrame ‘적용’방법

Pandas DataFrame 열을string으로 변환하는 메소드를 소개합니다.

  • Pandas Series.astype(str)방법
  • 열의 요소에서 작동하는 DataFrame ‘적용’방법

이 기사에서는 아래에서 동일한 DataFrame을 사용합니다.

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 Series.astype(str)방법

Pandas Series.astype(dtype)방법은 Pandas Series를 지정된dtype으로 변환합니다. 유형.

pandas.Series.astype(str)

이 기사 에서처럼 Series, DataFrame 열을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

astype()메소드는 DataFrame데이터를 그 자리에서 수정하지 않으므로 반환 된 Pandas Series를 특정 DataFrame열에 할당해야합니다.

또한 열 이름을 대괄호로 묶어 여러 열을 동시에 문자열로 변환하여 목록을 만들 수도 있습니다.

>>> 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(func, *args, **kwds)

DataFrameapply 메소드는func 함수를 각 열이나 행에 적용합니다.

단순함을 위해func 대신lambda 함수를 사용할 수 있습니다.

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

apply 메소드를 사용하여 함수를 여러 열에 적용 할 수 없습니다.

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

관련 문장 - Pandas DataFrame

  • Pandas DataFrame에 한 행을 추가하는 방법
  • Pandas Dataframe의 색인을 열로 변환하는 방법
  • 관련 문장 - Pandas DataFrame Column

  • Pandas DataFrame 에 헤더 행을 추가하는 방법
  • Pandas에서 기본값을 사용하여 기존 DataFrame에 새 열을 추가하는 방법