행 또는 열 삭제

방법

  1. loc 메서드 또는 Boolean 배열
  2. ~연산자를 통해 Boolean 배열 뒤집기
  3. drop 메서드
  4. dropna, drop.duplicated

열 삭제

매개변수 axis=1

  • drop 메서드
    • axis=1 열 방향(수직)으로 진행
    • inplace=True: 새로운 데이터프레임 지정하지 않고, 기존 데이터프레임 바로 수정
  • dropna 메서드
    • NaN 하나 이상 포함된 행 또는 열 삭제
    • how='all': 행 또는 열 내 모든 값이 NaN인 경우에만 삭제
  • [] 연산자 및 슬라이싱
# 삭제할 열 이름
df.drop(['col_name1', 'col_name2'], axis = 1, inplace=True)
# NaN 삭제
df.dropna(axis=1, how='all')
# 특정 열만 추출
idx = ['col_name1','col_name2']
df.loc[:, idx]

행 삭제

Tip

  • 매개변수 axis=0
  • 행 삭제시, drop메서드 보다 Boolean 배열을 []연산자에 전달하는 방법 자주 사용!
  • drop메서드
    • drop=0(기본값): 행 방향(수평)으로 진행
  • []연산자와 슬라이싱
  • 조건문
    • 특정 열 조건 만족하는 행만 추출
# 삭제할 행 index
df.drop([0, 2], axis = 0)
# 슬라이싱
df[3:]
# 조건문 1
selected_rows = df['col_name'] == 'value2'
df[selected_rows]
df[~selected_rows] # boolean 뒤집기
# 조건문 2
df[df['col_name']>value2]

중복 행 찾기

duplicated메서드 활용

기본적으로 모든 열 기준으로 중복된 행 찾음 중복 첫 행은 True, 그 외 False > 이를 sum() 함수와 이용하여 중복된 행의 개수 카운트 할 수 있음

  • duplicated 메서드
    • subset 매개변수: 특정 열을 기준으로 중복된 행 찾기
    • keep 매개변수:
      • 기본값(keep=True): 첫 행만 True
      • keep=False: 중복된 행 모두 True로 반환
      • keep='last': 마지막 중복된 행 False, 그 외 나머지 중복된 행 True
  • drop_duplicated 메서드
    • 매개변수 subset,keep 동일하게 제공
    • inplace=True: 현재 데이터프레임에 바로 수정
# 중복된 행 존재하는지 파악: 0인 경우 중복된 행 없음
sum(df.duplicated())
 
# 특정 열 기준 중복된 행 모두 True index 활용
dup_rows = df.duplicated(subset=['col_name1','col_name2'], keep=False)
new_df = df[dup_rows]

그룹별 모으기

groupby 메서드 활용

기본적으로 NaN 포함된 행은 삭제

  • groupby 메서드
    • by 매개변수: 그룹화 과정에서 기준이 되는 열 지정
    • dropna=False: NaN 이 포함되는 행 삭제를 방지함
      • 기본값(dropna=True): NaN 포함된 행 삭제
  • set_index 메서드
    • 지정한 열을 index로 설정, 이때 inplace=True로 지정하여 기존 데이터프레임 수정
  • reset_index 메서드
    • 지정된 index열 해제
df = df[:, ['col_name1','col_name2','col_name3']]
# 그룹별 col_name3 합계 구하기
group_df = df.groupby(by = ['col_name1','col_name2'], dropna=False)
count_df = group_df.sum()
 
df.set_index(['col_name1','col_name2'], inplace=True)

update, equals

  • update()
    • 다른 데이터프레임 통해 기존 데이터프레임 업데이트
    • 다른 데이터프레임 내 NaN은 제외됨
  • equals()
    • 다른 데이터프레임과 동일한 원소 가졌는지 비교함
    • 두 데이터프레임이 동일하면 True