python pandas 빈 값 과 빈 칸 제거 및 Nan 데이터 교체 방법

인공 적 으로 데 이 터 를 수집 할 때 빈 값 과 빈 칸 을 섞 을 수 있 으 며,원래 빈 칸 에 빈 칸 을 넣 은 것 도 눈 에 띄 지 않 는 다.이 는 데이터 처 리 를 하 는 사람 에 게 번 거 로 움 을 가 져 다 주 었 습 니 다.빈 값 과 빈 칸 은 모두 데이터 가 없 기 때 문 입 니 다.pandas 에서 Series 의 방법 인 notnull()은 빈 칸 이 있 는 데 이 터 를 포함 시 켜 우리 가 원 하 는 데 이 터 를 완전 하 게 얻 을 수 없 기 때문에 간단 한 방법 으로 이 문 제 를 처리 할 수 있 습 니 다.
방법 1:
빈 값 과 빈 칸 이 모두 데이터 가 없다 고 생각 하 는 이상 이 두 가지 상황 에서 불 배열 을 먼저 얻 을 수 있다.
여기,우리 의 DataFrame 형식의 데이터 세트 는 df 이 며,그 중 하나의 변수 VIN 이 있 습 니 다.그러면 빈 값 과 빈 칸 을 얻 은 불 배열 은 NONE 입 니 다.VIN。그리고 이 불 배열 을 통 해 우리 가 원 하 는 데 이 터 를 얻 을 수 있 습 니 다.

NONE_VIN = (df["VIN"].isnull()) | (df["VIN"].apply(lambda x: str(x).isspace()))
df_null = df[NONE_VIN]
df_not_null = df[~NONE_VIN]
방법 2:
Series 의.apply 방법 을 직접 사용 하여 변수 VIN 의 모든 값 을 수정 합 니 다.빈 칸 이 발견 되면 Nan 로 돌아 가 고,그렇지 않 으 면 원래 값 으로 돌아 갑 니 다.

df["VIN"]=df["VIN"].apply(lambda x: np.NaN if str(x).isspace() else x)
df_null = df[df["VIN"].isnull()]
df_not_null = df[df["VIN"].notnull()]
dataframe 의 NaN 을 원 하 는 값 으로 바 꿉 니 다.

import pandas as pd
df1 = pd.DataFrame([{'col1':'a', 'col2':1}, {'col1':'b', 'col2':2}])
df2 = pd.DataFrame([{'col1':'a', 'col3':11}, {'col1':'c', 'col3':33}])

data = pd.merge(left=df1, right=df2, how='left', left_on='col1', right_on='col1')
print data
#  NaN   None
print data.where(data.notnull(), None)
출력 결과:

 col1 col2 col3
0 a  1 11
1 b  2 NaN
 col1 col2 col3
0 a  1 11
1 b  2 None
요약:
방법 1 의 사고방식 은 바로 빈 칸 인지 아 닌 지 를 직접 판정 하고 빈 칸 을 선택 에 포함 시 키 는 것 이다.방법 2 의 사 고 는 먼저 빈 칸 을 NaN 으로 바 꾼 다음 에.isnull()또는 notnull()을 정상적으로 사용 하여 우리 가 원 하 는 데 이 터 를 얻 는 것 이다.
이상 의 python pandas 는 빈 값 과 빈 칸 을 제거 하고 Nan 데이터 교체 방법 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 실 수 있 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기