본문 바로가기

Pandas/실전

판다스 - 가상 쇼핑몰 고객 주문 데이터 : 시간대별 매출, 상위 매출 제품의 월별 판매량 추이

반응형

https://steadiness-193.tistory.com/155

 

판다스 - 가상 쇼핑몰 고객 주문 데이터 : 연월별 매출, 요일별 매출

https://steadiness-193.tistory.com/154 판다스 - 가상 쇼핑몰 고객 주문 데이터 : 전체 매출, 국가별 매출 https://steadiness-193.tistory.com/153 판다스 - 가상 쇼핑몰 고객 주문 데이터 : 전처리, Data clea..

steadiness-193.tistory.com

위 포스팅과 연결됩니다.

 

 

 

 

 

데이터 불러오기

 

 

 

 

시간대별 매출

[방법1]

 

InvoiceDate를 인덱스로 설정 → hour만 뽑아내서 groupby 이용

 

 

 

우선 인덱스로 설정해주고

 

 

 

 

lambda 함수를 이용해서

 

hour만 뽑아낸 뒤 이를 이용해서 그룹핑하면 된다.

 

 

 

 

시각화

 

 

 

시간대별 매출

[방법2]

 

dt 연산자 → 시간 컬럼 생성 → 시간 컬럼으로 groupby

 

 

 

dt 연산자를 이용해 hour만 뽑아내서 컬럼으로 추가했다.

 

 

 

 

이제 Hour 컬럼으로 그룹핑해서

 

원하는 값을 뽑아내면 된다.

 

 

 

 

시각화

 

 

그래프를 보니 12시까지는 완만히 상승하다가

 

13시 이후에는 감소 추세를 보인다.

 

이후 15시 이후부터는 급격히 줄어드는 경향을 보인다.

 

 

 

 

 

 

 

Top10 판매 제품

 

 

StockCode로 그룹핑하여

 

판매량 Quantity가 높은 순으로 정렬했다.

 

 

 

 

 

Top10 매출 제품

 

StockCode로 그룹핑하여

 

매출 CheckoutPrice가 높은 순으로 정렬했다.

 

 

 

 

 

 

 

 

 

판매 Top3 제품의 월별 판매량 추이

 

 

인덱싱에 이용할 상위 판매 StockCode의

 

상위 3개의 인덱스를 저장해 놓는다.

 

 

 

 

 

set_index와 사용자 정의 함수, 그리고 하나의 컬럼을 groupby에 이용한다.

 

사용자 정의 함수

 

 

 

https://steadiness-193.tistory.com/156

 

판다스 - groupby : set_index와 사용자 정의 함수로 그룹핑

판다스 - groupby : 함수로 그룹핑하기 사전이나 시리즈로 그룹핑하는 것보다 함수로 그룹핑하는 것이 보다 더 일반적이다. 그룹 색인으로 넘긴 함수는 색인값 하나마다 한 번씩 호출되며 반환값��

steadiness-193.tistory.com

자세한 내용은 위 포스팅 참조

 

 

 

 

이렇게 하나의 컬럼을 인덱스로 설정한 다음

 

또 다른 하나의 컬럼을 groupby에 입력하고

 

groupby에 사용자 정의 함수를 넣어서

 

제품코드와 연월별로 집계해서 데이터를 뽑아낼 수 있다.

 

 

 

 

 

여기서 필요한 CheckoutPrice 컬럼만 뽑아내 시각화해보자

 

 

 

맨 왼쪽의 막대그래프 데이터를 보니

 

23166 제품은 2010년 1월에 압도적으로 매출이 높아, 계절성 한정판 제품이거나

 

1월에 이벤트성으로 판매를 했을 가능성이 있다.

 

 

 

중간에 제일 높은 막대그래프 데이터는

 

23843 제품의 2011년 12월 매출이다.

 

23843 제품은 오직 2011년 12월 매출만 있다.

 

이벤트 또는 한정판 제품일 가능성이 높아 보인다.

 

 

 

 

 

 

 

위의 monthly_top3는 아래와 같은 방법으로도 만들 수 있다.

 

 

 

 

위 방법으로 시각화를 하면

 

 

 

xticks가 살짝 더 복잡해보이지만

 

값은 변화 없다.

 

 

 

반응형