본문 바로가기
Python

파이썬 Set을 활용한 데이터 분석과 필터링

by 노마드 산코디 2023. 10. 5.
728x90

안녕하세요. 이번 포스팅은 파이썬 Set에 대한 내용을 주제로 정리해 보려고 합니다. Set은 파이썬의 중요한 자료형 중 하나로, 집합과 관련된 작업을 수행할 때 유용하게 활용됩니다. Set 자료형의 기초부터 활용 사례까지 다양한 내용을 다뤄보겠습니다.

 

 




1. Set이란?

파이썬에서 Set(집합)은 고유한 값을 저장하는 자료형 중 하나입니다.

 

  • 고유한 요소
    Set은 중복된 값을 허용하지 않습니다. 즉, Set 내에 동일한 요소는 하나만 저장됩니다.

  • 순서가 없음
    Set
    은 요소들의 순서를 유지하지 않습니다. 따라서 Set에 저장된 요소들은 순서 없이 저장되며, 인덱스로 접근할 수 없습니다.


  • 가변성
    Set은 가변적인 자료형이며, 요소를 추가, 제거, 수정할 수 있습니다.


파이썬에서 Set은 중괄호 {}나 set() 생성자를 사용하여 생성하며, 요소들은 콤마로 구분하여 나열합니다.


예시 코드

my_set = {1, 2, 3, 4, 5}




Set
은 집합 연산(합집합, 교집합, 차집합 등)을 쉽게 수행할 수 있고, 중복된 데이터를 제거하거나 멤버십 테스트(특정 값이 Set에 속하는지 확인)에 유용합니다. Set은 데이터를 고유하게 관리하고 중복을 허용하지 않는 상황에서 유용하게 사용됩니다.








2. Set 요소의 추가, 삭제, 수정



1. Set 요소의 추가

  • add() 메서드
    add() 메서드를 사용하여 하나의 요소를 추가할 수 있습니다.
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # 출력: {1, 2, 3, 4}

 

  • update() 메서드
    update() 메서드를 사용하여 여러 요소를 한 번에 추가할 수 있습니다. 이 메서드는 반복 가능한(iterable) 객체(리스트, 튜플 등)를 인수로 받습니다.
my_set = {1, 2, 3}
my_set.update([3, 4, 5])
print(my_set)  # 출력: {1, 2, 3, 4, 5}




2. Set 요소의 삭제

  • remove() 메서드
    remove() 메서드를 사용하여 특정 요소를 삭제합니다. 만약 해당 요소가 Set에 없을 경우 KeyError 예외가 발생합니다.
my_set = {1, 2, 3}
my_set.remove(2)
print(my_set)  # 출력: {1, 3}

 

  • discard() 메서드
    discard() 메서드를 사용하여 특정 요소를 삭제합니다. 만약 해당 요소가 Set에 없어도 예외가 발생하지 않습니다.
my_set = {1, 2, 3}
my_set.discard(4)  # 요소가 없어도 예외가 발생하지 않음
print(my_set)  # 출력: {1, 2, 3}




3. Set 요소의 수정
파이썬 Set은 요소의 수정을 지원하지 않습니다. Set은 수정이 불가능하며, 요소를 추가하거나 삭제하는 용도로 사용됩니다.





Set
에서 요소를 추가, 삭제하고 수정하지는 못하지만, 중복된 요소를 허용하지 않고 고유한 값을 관리하는 데 유용합니다. 추가와 삭제 연산을 통해 Set을 효율적으로 활용할 수 있습니다.









3. Set의 연산



1. 합집합 (Union)
두 개의 Set을 합치는 연산으로, 중복된 요소는 한 번만 유지됩니다.

set1 = {1, 2, 3}
set2 = {3, 4, 5}

union_set = set1.union(set2)
# 또는
union_set = set1 | set2

print(union_set)  # 출력: {1, 2, 3, 4, 5}




2. 교집합 (Intersection)
두 개의 Set에서 공통된 요소만을 추출하는 연산입니다.

set1 = {1, 2, 3}
set2 = {3, 4, 5}

intersection_set = set1.intersection(set2)
# 또는
intersection_set = set1 & set2

print(intersection_set)  # 출력: {3}




3. 차집합 (Difference)
하나의 Set에서 다른 Set과 중복되지 않는 요소들을 추출하는 연산입니다.

set1 = {1, 2, 3}
set2 = {3, 4, 5}

difference_set = set1.difference(set2)
# 또는
difference_set = set1 - set2

print(difference_set)  # 출력: {1, 2}




4. 대칭 차집합 (Symmetric Difference)
두 Set 중 하나에만 존재하는 요소들을 추출하는 연산입니다.

set1 = {1, 2, 3}
set2 = {3, 4, 5}

symmetric_difference_set = set1.symmetric_difference(set2)
# 또는
symmetric_difference_set = set1 ^ set2

print(symmetric_difference_set)  # 출력: {1, 2, 4, 5}




5. 부분집합 확인
한 Set이 다른 Set의 부분집합인지 확인할 수 있습니다.

set1 = {1, 2, 3}
set2 = {1, 2}

is_subset = set2.issubset(set1)
print(is_subset)  # 출력: True




6. 상위집합 확인
한 Set이 다른 Set의 상위집합(자신을 포함하는 집합)인지 확인할 수 있습니다.

set1 = {1, 2, 3}
set2 = {1, 2}

is_superset = set1.issuperset(set2)
print(is_superset)  # 출력: True




이러한 Set 연산을 활용하면 데이터 처리와 분석에서 중복 제거, 집합 연산, 데이터 필터링 등 다양한 작업을 쉽게 수행할 수 있습니다.

 





4. Set의 활용 예제



1. 중복 제거
Set은 중복된 값을 허용하지 않으므로 중복 제거에 유용하게 사용됩니다.

data = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(data)
print(list(unique_numbers))  # 출력: [1, 2, 3, 4, 5]




2. 멤버십 테스트
Set은 특정 값이 집합에 포함되는지 효과적으로 확인할 수 있습니다.

fruits = {"apple", "banana", "cherry"}
print("apple" in fruits)  # 출력: True
print("orange" in fruits)  # 출력: False




3. 교집합 계산
두 집합에서 공통된 요소를 찾을 수 있습니다.

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

intersection_set = set1.intersection(set2)
print(intersection_set)  # 출력: {4, 5}




4. 데이터 필터링
Set을 사용하여 특정 조건을 만족하는 데이터만 추출할 수 있습니다.

scores = {75, 82, 90, 64, 95, 88}
passed_scores = {score for score in scores if score >= 80}
print(passed_scores)  # 출력: {82, 88, 90, 95}




5. 두 리스트의 고유한 값 추출
두 개의 리스트에서 고유한 값들을 추출할 때 Set을 활용합니다.

list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]

unique_values = set(list1) | set(list2)
print(list(unique_values))  # 출력: [1, 2, 3, 4, 5, 6, 7]




6. 문자열 중 중복 문자 찾기
Set을 사용하여 문자열에서 중복된 문자를 찾을 수 있습니다.

text = "programming"
duplicate_chars = set()
for char in text:
    if text.count(char) > 1:
        duplicate_chars.add(char)

print(duplicate_chars)  # 출력: {'g', 'r', 'm'}




Set은 중복 데이터를 처리하고 고유한 값을 추출하는 등 다양한 상황에서 유용하게 활용할 수 있는 자료형입니다.








최종 정리

오늘은 파이썬 Set에 대한 다양한 활용 예제를 살펴보았습니다. Set은 중복을 허용하지 않고 집합 연산을 쉽게 수행할 수 있는 유용한 자료형입니다. 중복 제거, 멤버십 테스트, 데이터 필터링, 교집합 계산 등 다양한 작업에 활용될 수 있으며, 데이터 처리와 분석에서 유용하게 사용됩니다. 파이썬의 Set을 활용하여 코드를 간결하고 효율적으로 작성할 수 있습니다.

감사합니다.

 

728x90
반응형