파이썬 판다스를 사용하면 현재 가진 데이터에서 빠르게 원하는 정보를 얻을 수 있습니다. 마케팅과 같이 데이터에 대한 전문성이 높지 않지만 데이터를 활용할 수 있는 분야에서 판다스 활용 능력은 업무에 많은 도움이 됩니다. 이번 시간에는 판다스를 활용하여 다양한 실무 데이터 분석을 해보도록 하겠습니다.
데이터 불러오기
import pandas as pd
hotels = pd.read_csv("hotel_booking_data.csv")
파이썬에서 판다스 라이브러리를 불러오고 'hotel_booking_data' 데이터를 가져옵니다. 데이터 파일은 'hotels'라는 별칭을 지정합니다.
hotels.head()
head 함수를 사용하여 대략적인 데이터 구성을 보면 총 36개의 열을 확인할 수 있습니다.
hotels.info()
info 함수를 사용하여 어떤 열 데이터가 있는지 확인할 수 있습니다.
len(hotels)
len 함수를 사용하면 총 행 수를 확인할 수 있습니다. hotels 데이터의 총 행 수는 119390개 입니다.
실무 업무 1: Null 데이터가 있는 열 확인
hotels.isnull().sum()
결과를 보면 company 열의 데이터 중 무려 1122593개의 null값을 확인할 수 있습니다.
실무 업무 2: Company 열 삭제하기
hotels = hotels.drop('company',axis=1)
drop 함수를 사용하여 'company'열을 삭제합니다. 열을 삭제하기 때문에 열을 의미하는 axis=1을 입력합니다.
실무 업무 3: 상위 5개의 국가 코드 찾기
hotels['country'].value_counts()[:5]
value_counts 함수를 사용하여 불러온 데이터의 country 열 값의 총합을 구하고 상위 5개의 값을 출력합니다. 결과를 보면 PRT, GBR, FRA, ESP 그리고 DEU 국가 코드를 가진 국가에서 호텔 예약이 많은 것을 확인할 수 있습니다.
실무 업무 4: 평균적으로 가장 높은 호텔 비용을 지불한 사람 찾기
현재 데이터에서 호텔 평균 비용을 나타내는 열은 'ADR' (average daily rate)입니다.
hotels.sort_values('adr',ascending=False)[['adr','name']].iloc[0]
sort_values 함수를 사용하여 'adr' 열 값을 내림차순으로 정리합니다. 정리한 데이터에서 'adr'과 'name' 열 값만 출력합니다. 마지막으로 첫 번째 행 (iloc[0])에 있는 데이터만 출력합니다. 결과를 보면 평균적으로 가장 높은 비용의 호텔비를 지불한 사람은 Daniel Walter이며 평균 비용은 $5400입니다.
실무 업무 5: 평균 호텔 숙박 기간 구하기
hotels['total_stay_days'] = hotels['stays_in_week_nights'] + hotels['stays_in_weekend_nights']
round(hotels['total_stay_days'].mean(),2)
불러온 데이터에 'total_stay_days'라는 새로운 열을 만들어 줍니다. 새로운 열의 값 'stays_in_week_nights' 값과 'stays_in_weekend_nights' 값을 합친 값, 즉 평일 숙박 기간과 주말 숙박 기간을 합친 값입니다. 그리고 mean 함수를 사용하여 total_stay_days 열 값의 평균을 계산하고 round 함수를 사용하여 소수점 둘째 자리까지 출력합니다. 그러면 3.43이라는 평균값을 구할 수 있습니다. 현재 데이터에 있는 사람들은 평균적으로 3일 동안 호텔에 숙박한 것을 알 수 있습니다.
지금까지 판다스를 활용한 실무 데이터 분석을 해봤습니다. 판다스를 활용할 수 있으면 상대적으로 단순한 데이터 분석을 빠르게 할 수 있습니다. 다음 글에서 실무 데이터 분석을 이어서 진행하도록 하겠습니다.
'데이터 분석' 카테고리의 다른 글
파이썬 사이킷런 (Scitkit-Learn)과 선형회귀 모델 (1) (2) | 2024.02.03 |
---|---|
Matplotlib 기본 라인 그래프 만들기 (2) | 2024.01.31 |
판다스 데이터프레임 합치기 (concat, merge) (2) | 2024.01.27 |
Pandas 피벗 테이블 만들기 (2) | 2024.01.20 |
Pandas Null값 관련 함수 (0) | 2024.01.20 |