하파와 데이터

[빅분기] 실기 1유형- 데이터 선택; 부분집합(SUBSET) 본문

자격증/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())  # 이건 아주 기본 출력

subset의 기본적인 출력 결과

이처럼 열이름 또는 열이름을 리스트 형태로 넣을 경우 원하는 컬럼의 결과만을 도출할 수 있다. 

 

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)

dropna의 결과

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()을 이용해서, 전체 중복된 값이 몇개인지 확인! 

반응형