본문 바로가기

Pandas/실전

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

반응형

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

 

판다스 - 가상 쇼핑몰 고객 주문 데이터 : 전체 매출, 국가별 매출

https://steadiness-193.tistory.com/153 판다스 - 가상 쇼핑몰 고객 주문 데이터 : 전처리, Data cleansing, 메모리 효율화 데이터 출처 https://archive.ics.uci.edu/ml/datasets/Online+Retail 온라인 리테일..

steadiness-193.tistory.com

위 포스팅과 연결됩니다.

 

 

 

데이터 불러오기

 

 

 

 InvoiceDate 컬럼은 자료형이 datetime이다.

 

 

하나의 자료를 가져와보면

 

Timestamp를 볼 수 있는데

 

 

연도를 얻기위해선 year를, 월을 얻기위해선 month를 이용하면 된다.

 

 

 

 

 

 

연월별 매출

[방법1]

 

InvoiceDate 컬럼을 인덱스로 설정 → 사용자 함수를 정의해 groupby이용

 

 

 

groupby에 사용자 함수를 넣어서 그룹핑하기 위해

 

우선 InvoiceDate 컬럼을 인덱스로 설정한다.

 

 

 

사용자 함수 정의

 

 

연월을 뽑아내는 함수다.

 

2011년 11월 → 201111

2011년  2월 → 201102

 

이처럼 길이를 6으로 맞춰주는 것이다.

 

 

 

 

위 함수를 groupby에 넘겨, 원하는 컬럼의 집계값을 확인하고 시각화

 

 

 

 

연말이 될 수록 매출이 증가하는 것을 볼 수 있다.

 

 

 

 

 

12월의 데이터가 적은 이유는

 

원본이 애초에 12월 9일까지의 데이터만 가지고 있기 때문이다.

 

 

12월 9일이 가장 최근 값

 

 

 

 

 

 

 

연월별 매출

[방법2]

 

dt 연산자 → 연, 월 컬럼 생성 → 연, 월 컬럼으로 groupby

 

 

 

 

생성한 2개의 컬럼으로 그룹핑

 

 

 

 

시각화

 

 

x축 눈금이 조금 달라진 것을 빼면 다른 것은 없다.

 

 

 

 

 

 

 

 

요일별 매출

[방법1]

 

InvoiceDate 컬럼을 인덱스로 설정 → lambda와 dayofweek을 이용해 그룹핑

 

 

 

0부터 월요일이며 6은 일요일이다.

 

 

특이한 점은 토요일의 값이 없다는 것.

 

 

인덱스를 보기 편하게 요일로 바꾸고 시각화를 해보자

 

 

 

목요일까지는 완만히 올라가다가 금요일부터 줄어드는 양상이다.

 

 

 

 

 

 

 

요일별 매출

[방법2]

 

dt 연산자 → 요일 컬럼 생성 → 요일 컬럼으로 groupby

 

 

 

반드시 dt 연산자를 매개로 해야 에러가 발생하지 않는다.

 

 

 

이제 요일 컬럼으로 그룹핑해서 원하는 데이터를 볼 수 있다.

 

 

 

인덱스를 바꾼 뒤

 

 

 

시각화

 

 

 

 

 

 

 

방법 1의 인덱스로 그룹화 참조 포스팅

 

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

 

판다스 - groupby : 인덱스로 그룹화하기 (멀티인덱스, level)

https://steadiness-193.tistory.com/76 판다스 - groupby : 색인 단계로 그룹핑하기(계층적 색인) 계층적 색인에서는 축 색인의 단계 중 하나를 이용해 집계할 수 있다. 데이터 만들기 컬럼이 멀티인덱스이므�

steadiness-193.tistory.com

 

반응형