-
[Python] padnas Dataframe 에서 astype을 이용하여 숫자형으로 변환할 수 없을 때 to_numeric을 이용Python/Python For Analytics 2020. 8. 2. 16:36
astype을 이용하여 문자열을 숫자형으로 형 변환할 때, 사용하지만 일부 변환할 수 없는 데이터가 있을 때는,
ValueError 에러를 발생시킨다.
이럴경우, to_numeric을 이용하여, 변환할 수 없는 데이터를 NaN 처리하고, 변환 시킬 수 있다.
아래와 같이 price에 1500a라는 값이 있다. Dataframe을 만들 때, object 타입으로 만들어 지며,
이 데이터 때문에 astype을 이용하여 숫자형을 변경할 수 없다.
import pandas as pd df = pd.DataFrame([['milk',1000],['icecream',500],['bread','1500a']], columns=['food','price']) df
df.dtypes
df['price'] = df['price'].astype(int) df.dtypes
ValueError: invalid literal for int() with base 10: '1500a'
이럴 경우, to_numeric을 이용하여 errors = coerce 옵션으로 변환할 수 없는 데이터는 NaN으로 바꾸고,
타입을 변경한다.
df['price'] = pd.to_numeric(df['price'], errors='coerce') df
'Python > Python For Analytics' 카테고리의 다른 글
[ Python ] pandas를 이용한 bar graph (stacked) (0) 2022.03.01 [Python] wordcloud 만들기 (0) 2021.01.28 [Python] seaborn을 이용한 간단한 heatmap 그리기 (0) 2020.11.28 [Python] pandas와 pymssql을 이용하여 MSSQL 연동 (0) 2020.10.05 [Python] matplotlib - 그래프에 값 표시 하기 (1) 2020.08.02 [Python] matplotlib - lollipop graph (0) 2020.07.15 [Python] matplotlib - pie graph (0) 2020.07.09 [Python] matplotlib - angle line graph (0) 2020.07.08