csv 파일 ( https://www.kaggle.com/mansoordaku/ckdisease/data의 kidney_disease.csv)을 읽는 동안 pandas는 실수로 pcv , wc 및 rc 열을 dtype 개체 (float이어야 함)에 할당합니다 . dtypes를 지정하면 오류가 발생합니다.
data = pd.read_csv(file, usecols=["pcv", "wc", "rc"],
dtype={"pcv": np.float64, "wc": np.float64, "rc": np.float64})
ValueError: could not convert string to float: '\t?'
왜 이런 일이 발생하는지 설명해 줄 수 있습니까? 이 열의 모든 값은 숫자 또는 nan에 해당하는 문자열입니다. 그리고 팬더가 처음 100 개 행 또는 이와 비슷한 것을 기반으로 dtype을 "추측"할 가능성이 있습니까?
감사합니다!
소스 데이터 파일이 깨끗하지 않습니다. 먼저 파일을 읽은 다음 float로 구문 분석해야합니다.
import pandas as pd
df = pd.read_csv('kidney_disease.csv')
cols = ['pcv','wc','rc']
df = df[cols]
for col in cols:
df[col] = pd.to_numeric(df[col],downcast='float',errors='coerce')
print(df.dtypes)
산출
pcv float32
wc float32
rc float32
dtype: object
이로 인해 nan
문자열을 변환 할 수없는 값 이 생성됩니다 . 데이터 세트를 조사하여 다른 정리가 필요한지 확인해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다