행 또는 열 삭제
방법
- loc 메서드 또는 Boolean 배열
~연산자를 통해 Boolean 배열 뒤집기drop메서드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로 지정하여 기존 데이터프레임 수정
- 지정한 열을 index로 설정, 이때
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