Python Pandas 라이브러리 4 (데이터 클린징)

Pandas(데이터 클린징)


결측 데이터

결측 데이터 확인

# 결측 데이터 확인
df.isnull()
df.notnull()
# 결측치 개수 확인
df.isnull().sum()   # 컬럼 별 결측값 개수 구하기
df.isnull().sum(1)  # 행 단위 결측값 개수 구하기
df.notnull().sum(1) # 행 단위 실제값 개수 구하기

결측치 제거

# 행 삭제
df = df.dropna(axis=0)
# 열 삭제
df = df.dropna(axis=1)
# 특정 행 또는 열 결측치 제거
df['tip'].dropna()

결측치 대체

# 결측값을 특정 값으로 채우기
df = df.fillna(0)
# 결측값을 특정 문자열로 채우기
df = df.fillna("0")
# 결측값을 변수별 평균으로 대체
df = df.fillna(df.mean())

# 특정 항복의 평균 구하기
df.mean()['tip']

이상 데이터

특정 범주 이외의 값들을 제거

# boxplot으로 이상치 확인
plt.boxplot(df['tip'])
plt.show()
df = df.drop(0, 0)

중복데이터

중복 데이터 확인

# duplicated() 메소드로 중복 데이터 찾기
# dataFrame.duplicated()는 True, False의 boolean 형태의 Series 반환
df.duplicated(['tip'])

# keep = 'first'가 default이며, 중복값이 있으면 첫번째 값을 duplicated
# 여부를 False로 반환 나머지 중복값에 대해서는 True 반환
df.duplicated(['tip'], keep = 'first')# 기본값

# keep = 'last'는 중복값이 있으면 첫번째 값을 duplicated 여부를 
# True로 반환 나머지 중복값에 대해서는 False 반환
df.duplicated(['tips'], keep = 'last')

# keep = False는 처음이나 끝값인지 여부는 고려를 안하고 중복이면 무조건 True 반환
df.duplicated(['tips'], keep = False)

중복 데이터 제거

```python

drop_duplicates()는 중복값을 keep=’first’, ‘last’, False argument에 따라

유일한 1개의 key값만 남기고 나머지는 중복 제거

df.drop_duplicates([‘tips’], keep = ‘first’) df.drop_duplicates([‘tips’], keep = ‘last’) df.drop_duplicates([‘tips’], keep = False)

태그:

카테고리:

업데이트: