[PYTHON] Pandas : dtype 'object'를 int로 변환합니다.
PYTHONPandas : dtype 'object'를 int로 변환합니다.
나는 Pandas로 SQL 질의를 읽었으며, 문자열, 날짜 및 정수 임에도 불구하고 dtype 'object'로 값이 들어옵니다. 나는 Pandas datetime dtype으로 'object'날짜를 변환 할 수 있지만 문자열과 정수를 변환하려고하면 오류가 발생합니다.
다음은 그 예입니다.
>>> import pandas as pd
>>> df = pd.read_sql_query('select * from my_table', conn)
>>> df
id date purchase
1 abc1 2016-05-22 1
2 abc2 2016-05-29 0
3 abc3 2016-05-22 2
4 abc4 2016-05-22 0
>>> df.dtypes
id object
date object
purchase object
dtype: object
df [ 'date']를 datetime으로 변환하면 다음과 같이 작동합니다.
>>> pd.to_datetime(df['date'])
1 2016-05-22
2 2016-05-29
3 2016-05-22
4 2016-05-22
Name: date, dtype: datetime64[ns]
하지만 df [ 'purchase']를 정수로 변환하려고하면 오류가 발생합니다.
>>> df['purchase'].astype(int)
....
pandas/lib.pyx in pandas.lib.astype_intsafe (pandas/lib.c:16667)()
pandas/src/util.pxd in util.set_value_at (pandas/lib.c:67540)()
TypeError: long() argument must be a string or a number, not 'java.lang.Long'
참고 : .astype ( 'float')을 시도했을 때 비슷한 오류가 발생합니다.
문자열로 변환하려고 할 때 아무 것도 일어나지 않는 것 같습니다.
>>> df['id'].apply(str)
1 abc1
2 abc2
3 abc3
4 abc4
Name: id, dtype: object
해결법
-
==============================
1.@piRSquared에 의한 의견을 바탕으로 나를 위해 일한 답을 문서화하십시오.
@piRSquared에 의한 의견을 바탕으로 나를 위해 일한 답을 문서화하십시오.
먼저 문자열로 변환 한 다음 정수로 변환해야했습니다.
>>> df['purchase'].astype(str).astype(int)
-
==============================
2.간단 해
간단 해
pd.factorize(df['purchase'])[0]
예:
레이블, 유니크 = pd.factorize ([ 'b', 'b', 'a', 'c', 'b'])
라벨 배열 ([0, 0, 1, 2, 0])
유일한 배열 ([ 'b', 'a', 'c'], dtype = 객체)
-
==============================
3.이 차례를 따라라:
이 차례를 따라라:
1. 파일을 청소하십시오 -> CSV 형식으로 데이터 파일을 열고 "?" 빈 장소 대신에 모든 것을 지우십시오.
누락 된 값을 포함하는 행을 삭제합니다. 예 :
df.dropna(subset=["normalized-losses"], axis = 0 , inplace= True)
3. 변환을 위해 지금 astype 사용
df["normalized-losses"]=df["normalized-losses"].astype(int)
참고 : 여전히 프로그램에서 오류를 발견 한 다음 CSV 파일을 다시 검사하고 Excel에서 열어 "?" 원하는 열에서 삭제 한 다음 파일을 저장하고 돌아가서 프로그램을 실행하십시오.
코멘트 성공! 작동한다면. :)
from https://stackoverflow.com/questions/39173813/pandas-convert-dtype-object-to-int by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] SQLAlchemy를 Google Cloud SQL과 함께 사용할 수 있습니까? (0) | 2018.11.01 |
---|---|
[PYTHON] 두 문자열이 파이썬에서 서로의 순열인지 확인하기 (0) | 2018.11.01 |
[PYTHON] 파이썬에서 MP3를 WAV로 변환하는 방법 (0) | 2018.11.01 |
[PYTHON] 클래스 기반 일반 뷰에서 초기 값을 modelform으로 설정합니다. (0) | 2018.11.01 |
[PYTHON] 사슬로 묶인, 중첩 된 dict ()는 파이썬에서 호출을받습니다. (0) | 2018.11.01 |