본문 바로가기
수업(국비지원)/Python

[Python] chipo.tsc 파일 분석하기2

by byeolsub 2023. 4. 26.

 📌

# item_name 별 단가를 조회하기
# item_name으로 groupby하여 최소값이 단가
price_one = chipo.groupby("item_name").min()["item_price"]
price_one

#단가의 분포를 히스토그램으로 출력하기
#1
import matplotlib.pyplot as plt
from matplotlib import rc
rc('font', family='Malgun Gothic')
plt.hist(price_one)
plt.ylabel("상품갯수")
plt.xlabel("상품단가 분포")

#2
price_one.plot(kind="hist")
plt.ylabel("상품갯수")
plt.xlabel("상품단가 분포")

# 단가가 가장 높은 상품 10개만 조회하기
price_one.sort_values(ascending=False)[:10]

#단가가 가장 높은 상품의 이름 조회하기
price_one.idxmax() #하나만 나와서 오류

max_item = price_one.max()
list(price_one[price_one==max_item].index)

# 주문당 주문금액이 가장 높은 5건의 주문 총 수량을 조회하기

#chipo.groupby("order_id").sum() 전체 주문당합계 주문아이디로 정렬
# ascending=False : 내림차순 정렬을 위하여
price5 = chipo.groupby("order_id").sum().\\
    sort_values(by="item_price",ascending=False)[:5] 
    
price5

# 주문수량
price5["quantity"].sum() # 결과 -> 103

# 주문당 주문금액이 높은 5건 주문의 주문정보 조회하기
#chipo["order_id"].isin(price5.index)은 
#chipo 데이터프레임의 order_id 열,컬럼에서 
#price5.index와 일치하는 값이 있는 행을 찾아 
#["order_id","item_name","quantity","item_price"]내용 추출
chipo_5 = chipo[chipo["order_id"].isin(price5.index)]\\
    [["order_id","item_name","quantity","item_price"]]  
    
chipo_5
chipo_5.head()

# Veggie Salad Bowl 몇번 주문되었는지 출력하기
'''
   주문번호   주문상품
      1       Veggie Salad Bowl
      1       Veggie Salad Bowl
      2       Veggie Salad Bowl
      
      => 2번 주문       
'''
#chipo데이타프레임의 item_name 컬럼중에서
#'Veggie Salad Bowl'과 값이 일치하는경우를
#chipo_salad에 저장
chipo_salad = chipo[chipo["item_name"] == 'Veggie Salad Bowl' ]
len(chipo_salad) #chipo_salad의 개수 => 18 건수 
len(chipo_salad.groupby("order_id")) #주문자아이디순서로 정렬했을때 건수

# 한번의 주문 내에서 중복 집계된 item_name을 제거하기
#drop_duplicates(['item_name','order_id'])
chipo_salad = chipo_salad.drop_duplicates(['item_name','order_id'])
print(len(chipo_salad))