Pandas 처리 부족 값 명령 완전 설명
pandas 라 이브 러 리 를 활용 하여 얻 은 데 이 터 를 데이터 세척 하고 관련 지식 을 복습 합 니 다.
1 데이터 세척
1.1 데이터 부족 처리
수치 형 데이터 에 대해 서 는 결 실 된 값(NAN)과 비 결 실 된 값 으로 나 뉘 며,결 실 된 값 에 대한 검 사 는 Python 에서 pandas 라 이브 러 리 의 Series 클래스 대상 의 isnull 방법 으로 검 측 할 수 있 습 니 다.
import pandas as pd
import numpy as np
string_data = pd.Series(['Benzema', 'Messi', np.nan, 'Ronaldo'])
string_data.isnull()
부족 한 값 에 대해 서 는 np.nan 을 제외 하고 None 으로 부족 한 값 을 표시 할 수 있 습 니 다.
string_data = None
1.2 데이터 부족 제거1.2.1 시리즈
dropna 방법 으로 NAN 의 데 이 터 를 걸 러 냅 니 다.
from numpy import nan as NA
import pandas as pd
data = pd.Series([1,NA,4.5,NA,5])
data.dropna()
다른 방법 은 불 값 색인 을 사용 하여 NAN 데 이 터 를 걸 러 내 는 것 입 니 다.
data[data.notnull()]
1.2.2 DataFrame 에 대해dropna()방법 은 DataFrame 데이터 의 경우 NAN 데이터 가 포 함 된 줄 을 모두 버 립 니 다.
data = pd.DataFrame([[1., 6.5, 3.], [1., NA, NA],
[NA, NA, NA], [NA, 6.5, 3.]])
data
data.dropna()
줄 에 있 는 모든 NAN 데이터 의 DataFrame 만 삭제 하려 면 dropna()방법의 인자 how 를 설정 하면 됩 니 다.
data.dropna(how = 'all')
작업 대상 이 열 로 바 뀌 면 코드 는 다음 과 같 습 니 다.
data[4] = NA
data
data.dropna(axis=1, how = 'all')
그 중 일 부 를 남 기 려 면 thresh 인 자 를 설정 할 수 있 습 니 다.
df = pd.DataFrame(np.random.randn(7, 3))
df.iloc[:4, 1] = NA
df.iloc[:2, 2] = NA
df
df.dropna(thresh = 2)
thresh=n,인자 n 은 최소한 n 개의 비 NA 줄 을 유지 하 는 것 과 같 습 니 다.1.3 부족 한 데 이 터 를 채 웁 니 다.
fillna(n),n 바 꾸 기 NA
df = pd.DataFrame(np.random.randn(7, 3))
df.fillna(0)
채 우기 형식 이 사전 이 라면 fillna({0:n1,1:n2})는 0 의 NA 를 n1 로 채 우 고 1 의 NA 를 n2 로 채 웁 니 다.
df.fillna({{1 : 0.2,2 : 0.3}})
df 의 NA 값 을 직접 채 우 고 df 를 직접 바 꿉 니 다.새로운 변 수 를 명명 할 필요 가 없습니다.
df.fillna(0, inplace = True)
2 데이터 변환2.1 중복 데이터 제거
data = pd.DataFrame({'k1': ['one', 'two'] * 3 + ['two'],
'k2': [1, 1, 2, 3, 3, 4, 4]})
data.duplicated()
줄 마다 반복 되 는 결 과 를 되 돌려 줍 니 다.반복 되 지 않 는 것 은 False 이 고 반복 되 는 것 은 True 입 니 다.중복 되 는 줄 을 제거 하려 면 코드 는 다음 과 같 습 니 다.
data.drop_duplicates()
작업 대상 이 열 이면 Duplicated 방법 에서 인 자 를 지정 하면 됩 니 다.
data['k3'] = range(7)
data.duplicated(['k1'])
k1 열 에서 중복 되 는 요 소 를 되 돌려 줍 니 다.drop 에 대하 여duplicates()방법 에 따 르 면 중복 데 이 터 를 제거 한 후 자 를 제거 합 니 다.예 를 들 어 번호 가 0,1 인 데이터 가 중복 되 고 방법 은 index=1 의 줄 을 삭제 합 니 다.전 자 를 삭제 하려 면 last 인 자 를 지정 하면 됩 니 다.
data.drop_duplicates(['k1'], keep = 'last')
2.2 맵 과 결합map 함수 사용 방법
list(map(lambda x : 2 * x , range(10)))
2.3 교체replace 방법 을 사용 합 니 다.replace 는 두 개의 매개 변수 가 있 습 니 다.전 자 는 교체 되 는 수 이 고 후 자 는 교체 되 는 수 입 니 다.매개 변수 형식 은 목록 일 수도 있 고 사전 일 수도 있 습 니 다.
data = pd.Series([1., -999., 2., -999., -1000., 3.])
data.replace(-999.0, np.nan) #
data.replace([-999.0, -1000.0], np.nan) #
data.replace([-999.0, -1000.0],[np.nan, 0]) #
data.replace({-999.0 : 0, -1000.0 : np.nan}) #
2.4 데이터 수정판 만 들 기rename 방법 은 데이터 의 수정판 을 만 들 수 있 으 며,원본 데이터 에서 수정 할 필요 가 없습니다.
data.rename(index=str.title, columns=str.upper)
또한 사전 형식 을 사용 하여 index,columns 를 변경 할 수 있 습 니 다.
data.rename(index = {'OHIO': 'INDIANA'}, columns = {'three': 'peekaboo'})
이러한 이름 변경 은 원래 데 이 터 를 수정 하지 않 습 니 다.data 를 직접 바 꾸 려 면 인자 inplace=True 를 사용 하면 됩 니 다.
data.rename(index = {'OHIO': 'INDIANA'}, columns = {'three': 'peekaboo'}, inplace = True)
data
이렇게 해서 data 가 바 뀌 었 습 니 다.2.5 계산 지표\벙어리 변수
기계 학습 에 사용 되 는 클래스 데이터 전환 은 df 중의 object 대상 을 One-hot 인 코딩 으로 전환 시 켜 디지털 간 의 비교 크기 문 제 를 없 애 는 데 사 용 됩 니 다.
df = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'b'],
'data1': range(6)})
pd.get_dummies(df['key']) # key ,
분 리 된 속성 앞 에 접 두 사 를 붙 이려 면 prefix 인 자 를 설정 하면 이 기능 을 수행 할 수 있 습 니 다.원본 데이터 와 합 칠 수 있 습 니 다.
dummies = pd.get_dummies(df['key'], prefix = 'key')
df_with_dummies = df['data1'].join(dummies)
df_with_dummies
여기 서 Pandas 처리 부족 치 명령 에 대한 상세 한 설명 은 여기까지 입 니 다.더 많은 Pandas 처리 부족 치 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Pandas의 DataFrame 스왑 열 순서 방법 구현1. DataFrame 열 레이블 가져오기 ['ps_state-stopped', 'ps_state-running', 'ps_state-blocked', 'ps_state-paging', 'ps_state-sleepi...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.