자격증/DATA
[빅분기] 실기 1유형- 데이터 선택; 부분집합(SUBSET)
hhpp
2024. 11. 27. 15:53
빅분기에서 데이터를 다루다보면,
특정한 컬럼만을 선택해야하는 때가 온다.
즉, 전체 데이터 집합 중 부분집합만을 추출해야할 때가 오는데,
그때 여러가지 방법을 활용해서 추출할 수 있다.
subset, loc, iloc, query 등으로!
이번엔 그중 subset의 활용에 대해서 알아본다.
0. 전제
jupyter notebook을 실행시킨 폴더 내 data 폴더가 있고, 그 안에 iris.csv 파일이 존재한다.
1. 열 또는 열의 집합을 이용한 데이터 선택
import pandas as pd
# load the iris data
df = pd.read_csv('data/iris.csv')
print(df.head()) # check the data a few
# print the 'sepal_length', 'sepal_width' columns only
print(df[['sepal_length', 'sepal_width']].head())
# print the 'variety' columns only
print(df['variety'].head()) # 이건 아주 기본 출력

이처럼 열이름 또는 열이름을 리스트 형태로 넣을 경우 원하는 컬럼의 결과만을 도출할 수 있다.
2. subset 파라미터
subset은 특정 열 또는 열 리스트를 활용해서 특정 데이터를 추출할 뿐 아니라,
pandas에서 이용되는 메소드에서 이름 또는 인덱스 일부를 지정하는데 사용된다.
2-1. dropna 에서 특정열 기준으로 결측치 데이터 제거
import pandas as pd
# 데이터프레임 생성하기
df = pd.DataFrame({'A': [1, 2, None],
'B': [4, None, 6]})
print(df) # 데이터프레임 확인
# 'A'열 기준으로 결측치 제거
df.dropna(subset=['A'], inplace = True)
# 제거 결과 확인하기
print(df)

subset = ['A']로 특정을 했기 때문에, B컬럼에 있는 결측치는 제거되지 않고,
'A'컬럼에 있는 결측치 열의 데이터만 제거된 것을 확인할 수 있다.
2-2. duplicated 를 활용해, 특정 열에서 중복된 값 확인하기
import pandas as pd
df = pd.DataFrame({'A': [1, 1, 2,2],
'B': [4, 5, 6,8]})
# df 확인
print(df)
# 중복값 확인
dup = df.duplicated(subset=['A'])
print(dup)
# 중복 값 개수 확인
dup_sum = df.duplicated(subset=['A']).sum()
print('중복된 값의 개수는: ', dup_sum, '개')

A열을 기준으로 0번째 행과 동일한 데이터가 1번 행에도 있기에 True가 나오게 되었음.
2번행과 동일한 데이터가 3번행에 있어서, 3번도 True
df.duplicated().sum()을 이용해서, 전체 중복된 값이 몇개인지 확인!
반응형