파일을 읽을 DTYPE를 사용하여 팬더에서 누락 된 값 처리 이 부동 소수점 값이있는 열은 상승 및 오류가있는 누락 행을 갖습니다. 어떻게 처리 할 수 있습니까?나는 각 열의 데이터의 유형을 지정 DTYPE를 사용하여 CSV 파일의 무리를 읽고 있어요
숫자 값의 경우 0, 이름의 경우 빈 문자열과 같은 기본값의 경우를 사용하고 싶습니다.
파일을 읽을 DTYPE를 사용하여 팬더에서 누락 된 값 처리 이 부동 소수점 값이있는 열은 상승 및 오류가있는 누락 행을 갖습니다. 어떻게 처리 할 수 있습니까?나는 각 열의 데이터의 유형을 지정 DTYPE를 사용하여 CSV 파일의 무리를 읽고 있어요
숫자 값의 경우 0, 이름의 경우 빈 문자열과 같은 기본값의 경우를 사용하고 싶습니다.
는 컨버터 사전을 사용 인수, 수입 컬럼에 사용자 정의 함수의 매핑 결과를 고려한다. 아래의 사용자 정의 메서드는 문자열의 모든 문자가 숫자 인 경우 True
을 반환하는 내장 된 isdigit()
을 사용하고 적어도 하나가 그렇지 않은 경우 False
을 사용합니다. 문자열 대응 물로 isalpha()
. 내용에 숫자를 허용 할 수 있도록 특히 문자열을 사용하여 필요에 맞게 조정하십시오.
import pandas as pd
cleanFloat = lambda x: float(x if x.isdigit() else 0)
cleanString = lambda x: str(x if x.isalpha() else '')
dict_convert = {1:cleanFloat, 2:cleanString,}
dict_type = {"columns_1":"int","column_2":"str"}
df = pd.read_csv('Input.csv', converters=dict_convert, dtype=dict_type)
누락 된 자리 표시자를 채우는 한 가지 방법은 데이터를 DataFrame으로 읽은 다음 채우기를 수행하는 것입니다. 같은
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
# csv data with missing data in each of the 2 columns
csv_data = """number,colour
3,blue
12,
2,
2,red
,yellow
6,yellow
14,purple
4,green
18,green
11,orange"""
df = pd.read_csv(pd.io.parsers.StringIO(csv_data))
df.number = df.number.fillna(-999) # fill missing numbers w/ -999
df.colour = df.colour.fillna('UNK') # fill missing categorical w/ UNK
print df
# In [1]: run test.py
# number colour
# 0 3.0 blue
# 1 12.0 UNK
# 2 2.0 UNK
# 3 2.0 red
# 4 -999.0 yellow
# 5 6.0 yellow
# 6 14.0 purple
# 7 4.0 green
# 8 18.0 green
# 9 11.0 orange
'NaN'은 float dtype으로만 표현할 수 있으므로 여기에서 정확히 무엇을 원하십니까? 당신은 당신이 원하는 것을 진술하지 않고 문제가 있다고 말하고있는 것입니다. 누락 된 값을 대체하거나 삭제할 수 있습니다. – EdChum
@EdChum 숫자 값의 경우 0, 이름의 경우 빈 문자열과 같은 기본값의 경우를 사용하고 싶습니다. –