행 또는 열 삭제
방법
- 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