In [1]:
import os
import numpy as np
import pandas as pd
In [2]:
os.getcwd() #현재 디렉토리 확인
Out[2]:
'/Users/limjongjun/Desktop/JayJay/Growth/Python/Class101_Pandas'
In [25]:
df3 = pd.read_csv('03_Delivery.csv', encoding= 'cp949') #한글 인코더 명칭 옵션 추가
df3
Out[25]:
결제수단 | 배송번호 | 배송시작일 | 배송완료일 | 상품구매금액 | 상품번호 | 수량 | 주문경로 | 주문일 | |
---|---|---|---|---|---|---|---|---|---|
0 | 무통장입금 | D-20181227-0000648-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 71450 | 1077.0 | 1 | PC쇼핑몰 | 20181227 |
1 | 무통장입금 | D-20181229-0000119-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 141240 | 42.0 | 2 | 모바일웹 | 20181229 |
2 | 무통장입금 | D-20181230-0000100-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 13910 | 1271.0 | 1 | 모바일웹 | 20181230 |
3 | 무통장입금 | D-20181231-0000087-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 81600 | 1085.0 | 1 | 모바일웹 | 20181231 |
4 | 무통장입금 | D-20181231-0000108-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 94710 | 1106.0 | 1 | 모바일웹 | 20181231 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
46744 | 카드 | D-20171229-0000036-00 | 2017-12-29 오후 4:32 | 2018-01-02 오전 5:31 | 52800 | 445.0 | 1 | 모바일웹 | 20171229 |
46745 | 카드 | D-20171229-0000043-00 | 2018-01-03 오전 9:45 | 2018-01-07 오전 5:38 | 112200 | 172.0 | 2 | 모바일웹 | 20171229 |
46746 | 카드 | D-20171230-0000022-01 | 2018-01-02 오후 7:06 | 2018-01-11 오전 2:46 | 36000 | 140.0 | 1 | 네이버 페이 | 20171230 |
46747 | 카드 | D-20171231-0000017-01 | 2018-01-03 오후 2:00 | 2018-01-06 오후 6:06 | 73460 | 184.0 | 1 | 네이버 페이 | 20171231 |
46748 | 카드 | D-20171231-0000026-00 | 2018-01-03 오후 12:43 | 2018-01-07 오전 5:38 | 81620 | 479.0 | 1 | 모바일웹 | 20171231 |
46749 rows × 9 columns
In [ ]:
df3.head()
Out[ ]:
결제수단 | 배송번호 | 배송시작일 | 배송완료일 | 상품구매금액 | 상품번호 | 수량 | 주문경로 | 주문일 | 상품번호(clean) | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 무통장입금 | D-20181227-0000648-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 71450 | 1077.0 | 1 | PC쇼핑몰 | 20181227 | 1077.0 |
1 | 무통장입금 | D-20181229-0000119-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 141240 | 42.0 | 2 | 모바일웹 | 20181229 | 42.0 |
2 | 무통장입금 | D-20181230-0000100-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 13910 | 1271.0 | 1 | 모바일웹 | 20181230 | 1271.0 |
3 | 무통장입금 | D-20181231-0000087-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 81600 | 1085.0 | 1 | 모바일웹 | 20181231 | 1085.0 |
4 | 무통장입금 | D-20181231-0000108-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 94710 | 1106.0 | 1 | 모바일웹 | 20181231 | 1106.0 |
In [ ]:
df3['주문일']
Out[ ]:
0 20181227 1 20181229 2 20181230 3 20181231 4 20181231 ... 46744 20171229 46745 20171229 46746 20171230 46747 20171231 46748 20171231 Name: 주문일, Length: 46749, dtype: int64
In [ ]:
pd.to_datetime(df3['주문일']) #형식지정을 하지 않아 초단위로 인식
Out[ ]:
0 1970-01-01 00:00:00.020181227 1 1970-01-01 00:00:00.020181229 2 1970-01-01 00:00:00.020181230 3 1970-01-01 00:00:00.020181231 4 1970-01-01 00:00:00.020181231 ... 46744 1970-01-01 00:00:00.020171229 46745 1970-01-01 00:00:00.020171229 46746 1970-01-01 00:00:00.020171230 46747 1970-01-01 00:00:00.020171231 46748 1970-01-01 00:00:00.020171231 Name: 주문일, Length: 46749, dtype: datetime64[ns]
In [ ]:
df3['주문일(datetime)'] = pd.to_datetime(df3['주문일'], format = '%Y%m%d')
df3
Out[ ]:
결제수단 | 배송번호 | 배송시작일 | 배송완료일 | 상품구매금액 | 상품번호 | 수량 | 주문경로 | 주문일 | 상품번호(clean) | 주문일(datetime) | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 무통장입금 | D-20181227-0000648-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 71450 | 1077.0 | 1 | PC쇼핑몰 | 20181227 | 1077.0 | 2018-12-27 |
1 | 무통장입금 | D-20181229-0000119-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 141240 | 42.0 | 2 | 모바일웹 | 20181229 | 42.0 | 2018-12-29 |
2 | 무통장입금 | D-20181230-0000100-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 13910 | 1271.0 | 1 | 모바일웹 | 20181230 | 1271.0 | 2018-12-30 |
3 | 무통장입금 | D-20181231-0000087-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 81600 | 1085.0 | 1 | 모바일웹 | 20181231 | 1085.0 | 2018-12-31 |
4 | 무통장입금 | D-20181231-0000108-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 94710 | 1106.0 | 1 | 모바일웹 | 20181231 | 1106.0 | 2018-12-31 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
46744 | 카드 | D-20171229-0000036-00 | 2017-12-29 오후 4:32 | 2018-01-02 오전 5:31 | 52800 | 445.0 | 1 | 모바일웹 | 20171229 | 445.0 | 2017-12-29 |
46745 | 카드 | D-20171229-0000043-00 | 2018-01-03 오전 9:45 | 2018-01-07 오전 5:38 | 112200 | 172.0 | 2 | 모바일웹 | 20171229 | 172.0 | 2017-12-29 |
46746 | 카드 | D-20171230-0000022-01 | 2018-01-02 오후 7:06 | 2018-01-11 오전 2:46 | 36000 | 140.0 | 1 | 네이버 페이 | 20171230 | 140.0 | 2017-12-30 |
46747 | 카드 | D-20171231-0000017-01 | 2018-01-03 오후 2:00 | 2018-01-06 오후 6:06 | 73460 | 184.0 | 1 | 네이버 페이 | 20171231 | 184.0 | 2017-12-31 |
46748 | 카드 | D-20171231-0000026-00 | 2018-01-03 오후 12:43 | 2018-01-07 오전 5:38 | 81620 | 479.0 | 1 | 모바일웹 | 20171231 | 479.0 | 2017-12-31 |
46749 rows × 11 columns
In [ ]:
#일자별 물품 주문량
df3.pivot_table(index='주문일(datetime)', values = '수량', aggfunc = 'sum')
Out[ ]:
수량 | |
---|---|
주문일(datetime) | |
2017-01-01 | 1 |
2017-01-15 | 1 |
2017-01-18 | 1 |
2017-01-23 | 1 |
2017-02-02 | 1 |
... | ... |
2019-05-31 | 88 |
2019-06-01 | 1 |
2019-06-02 | 5 |
2019-06-04 | 1 |
2019-06-19 | 2 |
807 rows × 1 columns
In [ ]:
df3['주문연도'] = df3['주문일(datetime)'].dt.year
df3
Out[ ]:
결제수단 | 배송번호 | 배송시작일 | 배송완료일 | 상품구매금액 | 상품번호 | 수량 | 주문경로 | 주문일 | 상품번호(clean) | 주문일(datetime) | 주문연도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 무통장입금 | D-20181227-0000648-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 71450 | 1077.0 | 1 | PC쇼핑몰 | 20181227 | 1077.0 | 2018-12-27 | 2018 |
1 | 무통장입금 | D-20181229-0000119-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 141240 | 42.0 | 2 | 모바일웹 | 20181229 | 42.0 | 2018-12-29 | 2018 |
2 | 무통장입금 | D-20181230-0000100-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 13910 | 1271.0 | 1 | 모바일웹 | 20181230 | 1271.0 | 2018-12-30 | 2018 |
3 | 무통장입금 | D-20181231-0000087-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 81600 | 1085.0 | 1 | 모바일웹 | 20181231 | 1085.0 | 2018-12-31 | 2018 |
4 | 무통장입금 | D-20181231-0000108-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 94710 | 1106.0 | 1 | 모바일웹 | 20181231 | 1106.0 | 2018-12-31 | 2018 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
46744 | 카드 | D-20171229-0000036-00 | 2017-12-29 오후 4:32 | 2018-01-02 오전 5:31 | 52800 | 445.0 | 1 | 모바일웹 | 20171229 | 445.0 | 2017-12-29 | 2017 |
46745 | 카드 | D-20171229-0000043-00 | 2018-01-03 오전 9:45 | 2018-01-07 오전 5:38 | 112200 | 172.0 | 2 | 모바일웹 | 20171229 | 172.0 | 2017-12-29 | 2017 |
46746 | 카드 | D-20171230-0000022-01 | 2018-01-02 오후 7:06 | 2018-01-11 오전 2:46 | 36000 | 140.0 | 1 | 네이버 페이 | 20171230 | 140.0 | 2017-12-30 | 2017 |
46747 | 카드 | D-20171231-0000017-01 | 2018-01-03 오후 2:00 | 2018-01-06 오후 6:06 | 73460 | 184.0 | 1 | 네이버 페이 | 20171231 | 184.0 | 2017-12-31 | 2017 |
46748 | 카드 | D-20171231-0000026-00 | 2018-01-03 오후 12:43 | 2018-01-07 오전 5:38 | 81620 | 479.0 | 1 | 모바일웹 | 20171231 | 479.0 | 2017-12-31 | 2017 |
46749 rows × 12 columns
In [ ]:
df3['주문월'] = df3['주문일(datetime)'].dt.month
df3
Out[ ]:
결제수단 | 배송번호 | 배송시작일 | 배송완료일 | 상품구매금액 | 상품번호 | 수량 | 주문경로 | 주문일 | 상품번호(clean) | 주문일(datetime) | 주문연도 | 주문월 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 무통장입금 | D-20181227-0000648-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 71450 | 1077.0 | 1 | PC쇼핑몰 | 20181227 | 1077.0 | 2018-12-27 | 2018 | 12 |
1 | 무통장입금 | D-20181229-0000119-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 141240 | 42.0 | 2 | 모바일웹 | 20181229 | 42.0 | 2018-12-29 | 2018 | 12 |
2 | 무통장입금 | D-20181230-0000100-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 13910 | 1271.0 | 1 | 모바일웹 | 20181230 | 1271.0 | 2018-12-30 | 2018 | 12 |
3 | 무통장입금 | D-20181231-0000087-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 81600 | 1085.0 | 1 | 모바일웹 | 20181231 | 1085.0 | 2018-12-31 | 2018 | 12 |
4 | 무통장입금 | D-20181231-0000108-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 94710 | 1106.0 | 1 | 모바일웹 | 20181231 | 1106.0 | 2018-12-31 | 2018 | 12 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
46744 | 카드 | D-20171229-0000036-00 | 2017-12-29 오후 4:32 | 2018-01-02 오전 5:31 | 52800 | 445.0 | 1 | 모바일웹 | 20171229 | 445.0 | 2017-12-29 | 2017 | 12 |
46745 | 카드 | D-20171229-0000043-00 | 2018-01-03 오전 9:45 | 2018-01-07 오전 5:38 | 112200 | 172.0 | 2 | 모바일웹 | 20171229 | 172.0 | 2017-12-29 | 2017 | 12 |
46746 | 카드 | D-20171230-0000022-01 | 2018-01-02 오후 7:06 | 2018-01-11 오전 2:46 | 36000 | 140.0 | 1 | 네이버 페이 | 20171230 | 140.0 | 2017-12-30 | 2017 | 12 |
46747 | 카드 | D-20171231-0000017-01 | 2018-01-03 오후 2:00 | 2018-01-06 오후 6:06 | 73460 | 184.0 | 1 | 네이버 페이 | 20171231 | 184.0 | 2017-12-31 | 2017 | 12 |
46748 | 카드 | D-20171231-0000026-00 | 2018-01-03 오후 12:43 | 2018-01-07 오전 5:38 | 81620 | 479.0 | 1 | 모바일웹 | 20171231 | 479.0 | 2017-12-31 | 2017 | 12 |
46749 rows × 13 columns
In [ ]:
df3['주문주차'] = df3['주문일(datetime)'].dt.isocalendar().week
df3
Out[ ]:
결제수단 | 배송번호 | 배송시작일 | 배송완료일 | 상품구매금액 | 상품번호 | 수량 | 주문경로 | 주문일 | 상품번호(clean) | 주문일(datetime) | 주문연도 | 주문월 | 주문주차 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 무통장입금 | D-20181227-0000648-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 71450 | 1077.0 | 1 | PC쇼핑몰 | 20181227 | 1077.0 | 2018-12-27 | 2018 | 12 | 52 |
1 | 무통장입금 | D-20181229-0000119-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 141240 | 42.0 | 2 | 모바일웹 | 20181229 | 42.0 | 2018-12-29 | 2018 | 12 | 52 |
2 | 무통장입금 | D-20181230-0000100-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 13910 | 1271.0 | 1 | 모바일웹 | 20181230 | 1271.0 | 2018-12-30 | 2018 | 12 | 52 |
3 | 무통장입금 | D-20181231-0000087-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 81600 | 1085.0 | 1 | 모바일웹 | 20181231 | 1085.0 | 2018-12-31 | 2018 | 12 | 1 |
4 | 무통장입금 | D-20181231-0000108-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 94710 | 1106.0 | 1 | 모바일웹 | 20181231 | 1106.0 | 2018-12-31 | 2018 | 12 | 1 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
46744 | 카드 | D-20171229-0000036-00 | 2017-12-29 오후 4:32 | 2018-01-02 오전 5:31 | 52800 | 445.0 | 1 | 모바일웹 | 20171229 | 445.0 | 2017-12-29 | 2017 | 12 | 52 |
46745 | 카드 | D-20171229-0000043-00 | 2018-01-03 오전 9:45 | 2018-01-07 오전 5:38 | 112200 | 172.0 | 2 | 모바일웹 | 20171229 | 172.0 | 2017-12-29 | 2017 | 12 | 52 |
46746 | 카드 | D-20171230-0000022-01 | 2018-01-02 오후 7:06 | 2018-01-11 오전 2:46 | 36000 | 140.0 | 1 | 네이버 페이 | 20171230 | 140.0 | 2017-12-30 | 2017 | 12 | 52 |
46747 | 카드 | D-20171231-0000017-01 | 2018-01-03 오후 2:00 | 2018-01-06 오후 6:06 | 73460 | 184.0 | 1 | 네이버 페이 | 20171231 | 184.0 | 2017-12-31 | 2017 | 12 | 52 |
46748 | 카드 | D-20171231-0000026-00 | 2018-01-03 오후 12:43 | 2018-01-07 오전 5:38 | 81620 | 479.0 | 1 | 모바일웹 | 20171231 | 479.0 | 2017-12-31 | 2017 | 12 | 52 |
46749 rows × 14 columns
In [ ]:
df3['주문요일'] = df3['주문일(datetime)'].dt.day_name()
df3
Out[ ]:
결제수단 | 배송번호 | 배송시작일 | 배송완료일 | 상품구매금액 | 상품번호 | 수량 | 주문경로 | 주문일 | 상품번호(clean) | 주문일(datetime) | 주문연도 | 주문월 | 주문주차 | 주문요일 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 무통장입금 | D-20181227-0000648-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 71450 | 1077.0 | 1 | PC쇼핑몰 | 20181227 | 1077.0 | 2018-12-27 | 2018 | 12 | 52 | Thursday |
1 | 무통장입금 | D-20181229-0000119-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 141240 | 42.0 | 2 | 모바일웹 | 20181229 | 42.0 | 2018-12-29 | 2018 | 12 | 52 | Saturday |
2 | 무통장입금 | D-20181230-0000100-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 13910 | 1271.0 | 1 | 모바일웹 | 20181230 | 1271.0 | 2018-12-30 | 2018 | 12 | 52 | Sunday |
3 | 무통장입금 | D-20181231-0000087-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 81600 | 1085.0 | 1 | 모바일웹 | 20181231 | 1085.0 | 2018-12-31 | 2018 | 12 | 1 | Monday |
4 | 무통장입금 | D-20181231-0000108-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 94710 | 1106.0 | 1 | 모바일웹 | 20181231 | 1106.0 | 2018-12-31 | 2018 | 12 | 1 | Monday |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
46744 | 카드 | D-20171229-0000036-00 | 2017-12-29 오후 4:32 | 2018-01-02 오전 5:31 | 52800 | 445.0 | 1 | 모바일웹 | 20171229 | 445.0 | 2017-12-29 | 2017 | 12 | 52 | Friday |
46745 | 카드 | D-20171229-0000043-00 | 2018-01-03 오전 9:45 | 2018-01-07 오전 5:38 | 112200 | 172.0 | 2 | 모바일웹 | 20171229 | 172.0 | 2017-12-29 | 2017 | 12 | 52 | Friday |
46746 | 카드 | D-20171230-0000022-01 | 2018-01-02 오후 7:06 | 2018-01-11 오전 2:46 | 36000 | 140.0 | 1 | 네이버 페이 | 20171230 | 140.0 | 2017-12-30 | 2017 | 12 | 52 | Saturday |
46747 | 카드 | D-20171231-0000017-01 | 2018-01-03 오후 2:00 | 2018-01-06 오후 6:06 | 73460 | 184.0 | 1 | 네이버 페이 | 20171231 | 184.0 | 2017-12-31 | 2017 | 12 | 52 | Sunday |
46748 | 카드 | D-20171231-0000026-00 | 2018-01-03 오후 12:43 | 2018-01-07 오전 5:38 | 81620 | 479.0 | 1 | 모바일웹 | 20171231 | 479.0 | 2017-12-31 | 2017 | 12 | 52 | Sunday |
46749 rows × 15 columns
In [65]:
import seaborn as sns
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rc('font', family ='AppleGothic')
In [ ]:
sns.countplot(data=df3, x='주문요일')
Out[ ]:
<Axes: xlabel='주문요일', ylabel='count'>
In [ ]:
sns.lineplot(data = df3, x = '주문일(datetime)', y = '상품구매금액', estimator = sum )
Out[ ]:
<Axes: xlabel='주문일(datetime)', ylabel='상품구매금액'>
In [ ]:
df3['주중/주말'] = df3['주문요일'].replace({'Monday' : '주중',
'Tuesday' : '주중',
'Wednesday' : '주중',
'Thursday' : '주중',
'Friday' : '주중',
'Saturday' : '주말',
'Sunday' : '주말'})
In [ ]:
df3['주중/주말'].value_counts()
Out[ ]:
주중/주말 주중 42406 주말 4343 Name: count, dtype: int64
In [ ]:
df3['주중/주말'].unique()
Out[ ]:
array(['주중', '주말'], dtype=object)
In [ ]:
df3.pivot_table(index = '주중/주말', values = '수량', aggfunc = 'mean')
Out[ ]:
수량 | |
---|---|
주중/주말 | |
주말 | 1.185586 |
주중 | 1.176201 |
In [ ]:
df3.pivot_table(index = '주중/주말', values = '상품구매금액', aggfunc = 'sum')
Out[ ]:
상품구매금액 | |
---|---|
주중/주말 | |
주말 | 306863800 |
주중 | 2936027585 |
In [ ]:
df3.pivot_table(index = '주중/주말', values = '상품구매금액', aggfunc = 'mean')
Out[ ]:
상품구매금액 | |
---|---|
주중/주말 | |
주말 | 70657.103385 |
주중 | 69236.136042 |
In [ ]:
sns.barplot(data = df3, x = '주중/주말', y = '상품구매금액', estimator = sum, ci = None)
/var/folders/_b/znjp14gd02d8lg63thqc7bm40000gn/T/ipykernel_10652/2074504014.py:1: FutureWarning: The `ci` parameter is deprecated. Use `errorbar=None` for the same effect. sns.barplot(data = df3, x = '주중/주말', y = '상품구매금액', estimator = sum, ci = None)
Out[ ]:
<Axes: xlabel='주중/주말', ylabel='상품구매금액'>
In [ ]:
sns.barplot(data = df3, x = '주중/주말', y = '상품구매금액', estimator = sum, ci = None, hue = '주문경로' )
/var/folders/_b/znjp14gd02d8lg63thqc7bm40000gn/T/ipykernel_10652/1196022264.py:1: FutureWarning: The `ci` parameter is deprecated. Use `errorbar=None` for the same effect. sns.barplot(data = df3, x = '주중/주말', y = '상품구매금액', estimator = sum, ci = None, hue = '주문경로' )
Out[ ]:
<Axes: xlabel='주중/주말', ylabel='상품구매금액'>
In [ ]:
df3['배송시작일']
Out[ ]:
0 2019-01-07 오전 8:56 1 2019-01-03 오전 9:30 2 2019-01-03 오전 9:30 3 2019-01-03 오전 9:30 4 2019-01-07 오전 8:56 ... 46744 2017-12-29 오후 4:32 46745 2018-01-03 오전 9:45 46746 2018-01-02 오후 7:06 46747 2018-01-03 오후 2:00 46748 2018-01-03 오후 12:43 Name: 배송시작일, Length: 46749, dtype: object
In [ ]:
def func1(row) :
return row.split(' ')[0]
df3['배송시작일(datetime)'] = pd.to_datetime(df3['배송시작일'].apply(func1))
df3['배송완료(datetime)'] = pd.to_datetime(df3['배송완료일'].apply(func1))
df3
Out[ ]:
결제수단 | 배송번호 | 배송시작일 | 배송완료일 | 상품구매금액 | 상품번호 | 수량 | 주문경로 | 주문일 | 상품번호(clean) | 주문일(datetime) | 주문연도 | 주문월 | 주문주차 | 주문요일 | 주중/주말 | 배송시작일(datetime) | 배송완료(datetime) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 무통장입금 | D-20181227-0000648-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 71450 | 1077.0 | 1 | PC쇼핑몰 | 20181227 | 1077.0 | 2018-12-27 | 2018 | 12 | 52 | Thursday | 주중 | 2019-01-07 | 2019-01-11 |
1 | 무통장입금 | D-20181229-0000119-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 141240 | 42.0 | 2 | 모바일웹 | 20181229 | 42.0 | 2018-12-29 | 2018 | 12 | 52 | Saturday | 주말 | 2019-01-03 | 2019-01-07 |
2 | 무통장입금 | D-20181230-0000100-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 13910 | 1271.0 | 1 | 모바일웹 | 20181230 | 1271.0 | 2018-12-30 | 2018 | 12 | 52 | Sunday | 주말 | 2019-01-03 | 2019-01-07 |
3 | 무통장입금 | D-20181231-0000087-00 | 2019-01-03 오전 9:30 | 2019-01-07 오전 5:32 | 81600 | 1085.0 | 1 | 모바일웹 | 20181231 | 1085.0 | 2018-12-31 | 2018 | 12 | 1 | Monday | 주중 | 2019-01-03 | 2019-01-07 |
4 | 무통장입금 | D-20181231-0000108-00 | 2019-01-07 오전 8:56 | 2019-01-11 오전 5:32 | 94710 | 1106.0 | 1 | 모바일웹 | 20181231 | 1106.0 | 2018-12-31 | 2018 | 12 | 1 | Monday | 주중 | 2019-01-07 | 2019-01-11 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
46744 | 카드 | D-20171229-0000036-00 | 2017-12-29 오후 4:32 | 2018-01-02 오전 5:31 | 52800 | 445.0 | 1 | 모바일웹 | 20171229 | 445.0 | 2017-12-29 | 2017 | 12 | 52 | Friday | 주중 | 2017-12-29 | 2018-01-02 |
46745 | 카드 | D-20171229-0000043-00 | 2018-01-03 오전 9:45 | 2018-01-07 오전 5:38 | 112200 | 172.0 | 2 | 모바일웹 | 20171229 | 172.0 | 2017-12-29 | 2017 | 12 | 52 | Friday | 주중 | 2018-01-03 | 2018-01-07 |
46746 | 카드 | D-20171230-0000022-01 | 2018-01-02 오후 7:06 | 2018-01-11 오전 2:46 | 36000 | 140.0 | 1 | 네이버 페이 | 20171230 | 140.0 | 2017-12-30 | 2017 | 12 | 52 | Saturday | 주말 | 2018-01-02 | 2018-01-11 |
46747 | 카드 | D-20171231-0000017-01 | 2018-01-03 오후 2:00 | 2018-01-06 오후 6:06 | 73460 | 184.0 | 1 | 네이버 페이 | 20171231 | 184.0 | 2017-12-31 | 2017 | 12 | 52 | Sunday | 주말 | 2018-01-03 | 2018-01-06 |
46748 | 카드 | D-20171231-0000026-00 | 2018-01-03 오후 12:43 | 2018-01-07 오전 5:38 | 81620 | 479.0 | 1 | 모바일웹 | 20171231 | 479.0 | 2017-12-31 | 2017 | 12 | 52 | Sunday | 주말 | 2018-01-03 | 2018-01-07 |
46749 rows × 18 columns
In [ ]:
df3['배송기간'] = df3['배송완료(datetime)'] - df3['배송시작일(datetime)']
In [ ]:
df3['배송기간'].describe()
Out[ ]:
count 46749 mean 4 days 04:38:57.008278251 std 1 days 04:56:12.144368428 min 0 days 00:00:00 25% 4 days 00:00:00 50% 4 days 00:00:00 75% 4 days 00:00:00 max 47 days 00:00:00 Name: 배송기간, dtype: object
In [ ]:
df3.loc[(df3['배송기간'] != '4 days')
&(df3['배송기간'] != '3 days')
&(df3['배송기간'] != '2 days')
&(df3['배송기간'] != '1 days')
&(df3['배송기간'] != '0 days')] #위 방식으로하면 식이 길어짐
Out[ ]:
결제수단 | 배송번호 | 배송시작일 | 배송완료일 | 상품구매금액 | 상품번호 | 수량 | 주문경로 | 주문일 | 상품번호(clean) | 주문일(datetime) | 주문연도 | 주문월 | 주문주차 | 주문요일 | 주중/주말 | 배송시작일(datetime) | 배송완료(datetime) | 배송기간 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
41 | 카드 | D-20190101-0000055-01 | 2019-01-03 오전 9:32 | 2019-01-09 오후 3:47 | 42350 | 1283.0 | 1 | 네이버 페이 | 20190101 | 1283.0 | 2019-01-01 | 2019 | 1 | 1 | Tuesday | 주중 | 2019-01-03 | 2019-01-09 | 6 days |
47 | 적립금 | D-20190101-0000106-01 | 2019-01-03 오전 9:30 | 2019-01-13 오전 7:19 | 68970 | 38.0 | 1 | 네이버 페이 | 20190101 | 38.0 | 2019-01-01 | 2019 | 1 | 1 | Tuesday | 주중 | 2019-01-03 | 2019-01-13 | 10 days |
68 | 카드 | D-20190102-0000013-01 | 2019-01-03 오전 9:30 | 2019-01-08 오전 9:21 | 78870 | 603.0 | 1 | 네이버 페이 | 20190102 | 603.0 | 2019-01-02 | 2019 | 1 | 1 | Wednesday | 주중 | 2019-01-03 | 2019-01-08 | 5 days |
102 | 카드 | D-20190102-0000224-01 | 2019-01-03 오전 9:30 | 2019-01-08 오후 2:01 | 134640 | 1282.0 | 2 | 네이버 페이 | 20190102 | 1282.0 | 2019-01-02 | 2019 | 1 | 1 | Wednesday | 주중 | 2019-01-03 | 2019-01-08 | 5 days |
106 | 무통장입금 | D-20190102-0000242-01 | 2019-01-03 오전 9:30 | 2019-01-09 오후 1:01 | 123420 | 70.0 | 1 | 네이버 페이 | 20190102 | 70.0 | 2019-01-02 | 2019 | 1 | 1 | Wednesday | 주중 | 2019-01-03 | 2019-01-09 | 6 days |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
46738 | 카드 | D-20171228-0000132-02 | 2017-12-29 오후 4:34 | 2018-01-03 오전 10:38 | 76600 | 107.0 | 10 | 네이버 페이 | 20171228 | 107.0 | 2017-12-28 | 2017 | 12 | 52 | Thursday | 주중 | 2017-12-29 | 2018-01-03 | 5 days |
46739 | 카드 | D-20171228-0000132-03 | 2017-12-29 오후 4:34 | 2018-01-03 오전 9:20 | 47300 | 248.0 | 1 | 네이버 페이 | 20171228 | 248.0 | 2017-12-28 | 2017 | 12 | 52 | Thursday | 주중 | 2017-12-29 | 2018-01-03 | 5 days |
46740 | 카드 | D-20171228-0000132-04 | 2017-12-29 오후 4:34 | 2018-01-07 오전 4:55 | 69960 | 293.0 | 1 | 네이버 페이 | 20171228 | 293.0 | 2017-12-28 | 2017 | 12 | 52 | Thursday | 주중 | 2017-12-29 | 2018-01-07 | 9 days |
46741 | 카드 | D-20171228-0000132-05 | 2017-12-29 오후 4:34 | 2018-01-07 오전 4:55 | 63140 | 305.0 | 1 | 네이버 페이 | 20171228 | 305.0 | 2017-12-28 | 2017 | 12 | 52 | Thursday | 주중 | 2017-12-29 | 2018-01-07 | 9 days |
46746 | 카드 | D-20171230-0000022-01 | 2018-01-02 오후 7:06 | 2018-01-11 오전 2:46 | 36000 | 140.0 | 1 | 네이버 페이 | 20171230 | 140.0 | 2017-12-30 | 2017 | 12 | 52 | Saturday | 주말 | 2018-01-02 | 2018-01-11 | 9 days |
2622 rows × 19 columns
In [ ]:
def func2(row) :
return str(row).split(' ')[0]
df3['배송기간(int)'] = (df3['배송기간'].apply(func2)).astype(int)
In [ ]:
df3.loc[(df3['배송기간(int)'] >= 7)]
Out[ ]:
결제수단 | 배송번호 | 배송시작일 | 배송완료일 | 상품구매금액 | 상품번호 | 수량 | 주문경로 | 주문일 | 상품번호(clean) | 주문일(datetime) | 주문연도 | 주문월 | 주문주차 | 주문요일 | 주중/주말 | 배송시작일(datetime) | 배송완료(datetime) | 배송기간 | 배송기간(int) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
47 | 적립금 | D-20190101-0000106-01 | 2019-01-03 오전 9:30 | 2019-01-13 오전 7:19 | 68970 | 38.0 | 1 | 네이버 페이 | 20190101 | 38.0 | 2019-01-01 | 2019 | 1 | 1 | Tuesday | 주중 | 2019-01-03 | 2019-01-13 | 10 days | 10 |
132 | 카드 | D-20190102-0000463-01 | 2019-01-03 오후 6:20 | 2019-01-28 오후 4:33 | 388080 | 1217.0 | 3 | 네이버 페이 | 20190102 | 1217.0 | 2019-01-02 | 2019 | 1 | 1 | Wednesday | 주중 | 2019-01-03 | 2019-01-28 | 25 days | 25 |
134 | 카드 | D-20190102-0000498-01 | 2019-01-03 오후 6:20 | 2019-01-28 오후 4:15 | 129360 | 1217.0 | 1 | 네이버 페이 | 20190102 | 1217.0 | 2019-01-02 | 2019 | 1 | 1 | Wednesday | 주중 | 2019-01-03 | 2019-01-28 | 25 days | 25 |
193 | 카드 | D-20190102-0000938-01 | 2019-01-03 오후 6:20 | 2019-01-13 오전 4:38 | 82170 | 380.0 | 1 | 네이버 페이 | 20190102 | 380.0 | 2019-01-02 | 2019 | 1 | 1 | Wednesday | 주중 | 2019-01-03 | 2019-01-13 | 10 days | 10 |
194 | 카드 | D-20190102-0000938-02 | 2019-01-03 오후 6:20 | 2019-01-13 오전 4:38 | 77220 | 379.0 | 1 | 네이버 페이 | 20190102 | 379.0 | 2019-01-02 | 2019 | 1 | 1 | Wednesday | 주중 | 2019-01-03 | 2019-01-13 | 10 days | 10 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
46719 | 무통장입금 | D-20171227-0000106-01 | 2017-12-28 오후 5:54 | 2018-01-06 오전 1:18 | 104000 | 68.0 | 1 | 네이버 페이 | 20171227 | 68.0 | 2017-12-27 | 2017 | 12 | 52 | Wednesday | 주중 | 2017-12-28 | 2018-01-06 | 9 days | 9 |
46737 | 카드 | D-20171228-0000132-01 | 2017-12-29 오후 4:34 | 2018-01-07 오전 4:55 | 74000 | 483.0 | 1 | 네이버 페이 | 20171228 | 483.0 | 2017-12-28 | 2017 | 12 | 52 | Thursday | 주중 | 2017-12-29 | 2018-01-07 | 9 days | 9 |
46740 | 카드 | D-20171228-0000132-04 | 2017-12-29 오후 4:34 | 2018-01-07 오전 4:55 | 69960 | 293.0 | 1 | 네이버 페이 | 20171228 | 293.0 | 2017-12-28 | 2017 | 12 | 52 | Thursday | 주중 | 2017-12-29 | 2018-01-07 | 9 days | 9 |
46741 | 카드 | D-20171228-0000132-05 | 2017-12-29 오후 4:34 | 2018-01-07 오전 4:55 | 63140 | 305.0 | 1 | 네이버 페이 | 20171228 | 305.0 | 2017-12-28 | 2017 | 12 | 52 | Thursday | 주중 | 2017-12-29 | 2018-01-07 | 9 days | 9 |
46746 | 카드 | D-20171230-0000022-01 | 2018-01-02 오후 7:06 | 2018-01-11 오전 2:46 | 36000 | 140.0 | 1 | 네이버 페이 | 20171230 | 140.0 | 2017-12-30 | 2017 | 12 | 52 | Saturday | 주말 | 2018-01-02 | 2018-01-11 | 9 days | 9 |
1611 rows × 20 columns