Data Analysis

Medical Insurance 비용 변화 분석 - Python(리스트 함수 활용)

hyungminjeon 2025. 4. 9. 17:43

 

이번 프로젝트에서는 Python의 리스트(List)와 관련된 다양한 함수를 사용하여 의료 보험 데이터를 관리하고 분석하는 방법을 실습했다.
리스트는 데이터를 저장하고 조작하는 데 매우 유용한 자료구조로, 다양한 내장 함수를 활용하면 더 효과적으로 데이터를 처리할 수 있다.


1. 데이터 준비

먼저, 보험 가입자의 이름과 보험 비용 데이터를 각각 리스트로 저장했다.

names = ["Mohamed", "Sara", "Xia", "Paul", "Valentina", "Jide", "Aaron", "Emily", "Nikita", "Paul"] 
insurance_costs = [13262.0, 4816.0, 6839.0, 5054.0, 14724.0, 5360.0, 7640.0, 6072.0, 2750.0, 12064.0]

names 리스트는 가입자의 이름을 저장하고, insurance_costs 리스트는 각 가입자의 보험 비용을 저장한다.


2. 새로운 데이터 추가: append() 함수

새로운 가입자 "Priscilla"와 그녀의 보험 비용 8320.0을 리스트에 추가했다.

names.append("Priscilla")
insurance_costs.append(8320.0)
  • append(value): 리스트의 맨 마지막에 새로운 요소를 추가한다.
  • 이로 인해 데이터가 업데이트되었으며, 이후 분석에 반영된다.

3. 두 리스트 결합: zip() 함수

각 가입자의 보험 비용과 이름을 쌍(pair)으로 묶기 위해 zip() 함수를 사용했다.

medical_records = list(zip(insurance_costs, names))
print(medical_records)
  • zip(list1, list2): 두 개의 리스트를 튜플 형태로 묶어주는 함수이다.
  • 이를 list()로 감싸 리스트로 변환하여 medical_records에 저장했다.

출력 예시:

[(13262.0, 'Mohamed'), (4816.0, 'Sara'), (6839.0, 'Xia'), (5054.0, 'Paul'), ...]

4. 데이터 개수 확인: len() 함수

의료 기록 데이터의 총 개수를 확인했다.

num_medical_records = len(medical_records)
print("There are " + str(num_medical_records) + " medical records.")
  • len(list): 리스트의 전체 요소 개수를 반환한다.
  • 총 11개의 데이터가 있으며, 새로운 가입자 "Priscilla"도 반영된 것을 확인할 수 있다.

5. 첫 번째 의료 기록 확인

리스트에서 첫 번째 의료 기록을 출력했다.

first_medical_record = medical_records[0]
print("Here is the first medical record: " + str(first_medical_record))
  • list[index]: 리스트에서 특정 인덱스의 요소를 가져오는 방법이다.
  • medical_records[0]는 첫 번째 요소를 가져온다.

6. 보험 비용 기준 정렬: sort() 함수

보험 비용을 기준으로 의료 기록을 정렬했다.

medical_records.sort()
print("Here are the medical records sorted by insurance cost: " + str(medical_records))
  • sort(): 리스트를 오름차순으로 정렬한다.
  • 기본적으로 첫 번째 요소(보험 비용)를 기준으로 정렬된다.

정렬 결과 예시:

[(2750.0, 'Nikita'), (4816.0, 'Sara'), (5054.0, 'Paul'), ...]

7. 보험 비용이 가장 저렴한 3명 찾기

cheapest_three = medical_records[:3]
print("Here are the three cheapest insurance costs in our medical records: " + str(cheapest_three))
  • list[:n]: 리스트에서 처음 n개의 요소를 슬라이싱하는 방법이다.
  • medical_records[:3]는 보험 비용이 가장 저렴한 3명의 의료 기록을 추출한다.

8. 보험 비용이 가장 비싼 3명 찾기

priciest_three = medical_records[-3:]
print("Here are the three most expensive insurance costs in our medical records: " + str(priciest_three))
  • list[-n:]: 리스트에서 마지막 n개의 요소를 슬라이싱하는 방법이다.
  • medical_records[-3:]는 보험 비용이 가장 높은 3명의 의료 기록을 추출한다.

9. 특정 이름 개수 찾기: count() 함수

이름 "Paul"이 몇 번 등장하는지 확인했다.

occurrences_paul = names.count("Paul")
print("There are " + str(occurrences_paul) + " individuals with the name Paul in our medical records.")
  • count(value): 리스트에서 특정 값이 몇 번 등장하는지 반환한다.
  • "Paul"이라는 이름이 데이터에 몇 명 있는지 확인하는 데 사용했다.

10. 정리

✅ 이번 실습에서 사용한 주요 리스트 함수

함수설명
append(value) 리스트 끝에 요소 추가
zip(list1, list2) 두 리스트를 튜플로 묶어 리스트로 반환
len(list) 리스트의 요소 개수 반환
sort() 리스트를 오름차순으로 정렬
list[index] 특정 인덱스의 요소 가져오기
list[:n] 처음 n개의 요소 가져오기 (슬라이싱)
list[-n:] 마지막 n개의 요소 가져오기 (슬라이싱)
count(value) 리스트에서 특정 값 개수 반환

이러한 리스트 메서드를 활용하면 데이터를 효과적으로 추가, 검색, 정렬 및 분석할 수 있다.