Pandas는 문자열을 숫자 형으로 변환

Suraj Joshi 2023년1월30일
  1. pandas.to_numeric()메서드
  2. pandas.to_numeric()메서드를 사용하여 Pandas DataFrame의 문자열 값을 숫자 유형으로 변환
  3. Pandas DataFrame의 문자열 값을 다른 문자가 포함 된 숫자 유형으로 변환
Pandas는 문자열을 숫자 형으로 변환

이 튜토리얼에서는pandas.to_numeric()메소드를 사용하여 Pandas DataFrame의 문자열 값을 숫자 유형으로 변환하는 방법을 설명합니다.

import pandas as pd

items_df = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 343, 565],
        "Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
        "Cost": ["300", "400", "350", "100", "1000", "400"],
    }
)

print(items_df)

출력:

    Id    Name  Cost
0  302   Watch   300
1  504  Camera   400
2  708   Phone   350
3  103   Shoes   100
4  343  Laptop  1000
5  565     Bed   400

위의 예제를 사용하여 DataFrame의 값을 숫자 유형으로 변경하는 방법을 보여줍니다.

pandas.to_numeric()메서드

통사론

pandas.to_numeric(arg, errors="raise", downcast=None)

arg로 전달 된 인수를 숫자 유형으로 변환합니다. 기본적으로argint64 또는float64로 변환됩니다. downcast 매개 변수의 값을 설정하여arg를 다른 데이터 유형으로 변환 할 수 있습니다.

pandas.to_numeric()메서드를 사용하여 Pandas DataFrame의 문자열 값을 숫자 유형으로 변환

import pandas as pd

items_df = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 343, 565],
        "Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
        "Cost": ["300", "400", "350", "100", "1000", "400"],
    }
)

print("The items DataFrame is:")
print(items_df, "\n")

print("Datatype of Cost column before type conversion:")
print(items_df["Cost"].dtypes, "\n")

items_df["Cost"] = pd.to_numeric(items_df["Cost"])
print("Datatype of Cost column after type conversion:")
print(items_df["Cost"].dtypes)

출력:

The items DataFrame is:
    Id    Name  Cost
0  302   Watch   300
1  504  Camera   400
2  708   Phone   350
3  103   Shoes   100
4  343  Laptop  1000
5  565     Bed   400 

Datatype of Cost column before type conversion:
object 

Datatype of Cost column after type conversion:
int64

items_dfCost 열의 데이터 유형을object에서int64로 변환합니다.

Pandas DataFrame의 문자열 값을 다른 문자가 포함 된 숫자 유형으로 변환

열을 일부 문자가 포함 된 값이있는 숫자 유형으로 변환하려는 경우 ValueError: Unable to parse string이라는 오류가 발생합니다. 이러한 경우 숫자가 아닌 모든 문자를 제거한 다음 유형 변환을 수행 할 수 있습니다.

import pandas as pd

items_df = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 343, 565],
        "Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
        "Cost": ["$300", "$400", "$350", "$100", "$1000", "$400"],
    }
)

print("The items DataFrame is:")
print(items_df, "\n")

print("Datatype of Cost column before type conversion:")
print(items_df["Cost"].dtypes, "\n")

items_df["Cost"] = pd.to_numeric(items_df["Cost"].str.replace("$", ""))
print("Datatype of Cost column after type conversion:")
print(items_df["Cost"].dtypes, "\n")

print("DataFrame after Type Conversion:")
print(items_df)

출력:

The items DataFrame is:
    Id    Name   Cost
0  302   Watch   $300
1  504  Camera   $400
2  708   Phone   $350
3  103   Shoes   $100
4  343  Laptop  $1000
5  565     Bed   $400 

Datatype of Cost column before type conversion:
object 

Datatype of Cost column after type conversion:
int64 

DataFrame after Type Conversion:
    Id    Name  Cost
0  302   Watch   300
1  504  Camera   400
2  708   Phone   350
3  103   Shoes   100
4  343  Laptop  1000
5  565     Bed   400

Cost열의 값에 첨부 된 $문자를 제거한 다음 pandas.to_numeric()메서드를 사용하여 이러한 값을 숫자 유형으로 변환합니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Pandas Data Type