본문 바로가기
데이터 분석 기초/분석 기법

[Python Data Analysis 분석 2] 데이터 분석 - 식당 데이터 분석해보기(2/3)

by 망망낭낭 2020. 6. 7.
반응형

네이버 블로그로 이전했습니다.

https://blog.naver.com/moongda0404/222729449536

 

[Python Data Analysis 분석 2] 데이터 분석 - 식당 데이터 분석해보기(2/3)

*본 글은 Python3을 이용한 데이터 분석(Data Analysis)을 위한 글입니다. 이번에는 "어떤 음식 조...

blog.naver.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*본 글은 Python3을 이용한 데이터 분석(Data Analysis)을 위한 글입니다.

이번에는 "어떤 음식 조합이 제일 선호될까?"에 대한 분석을 해보겠습니다.

([Python Data Analysis 4]와 동일한 csv파일 사용)

데이터를 보면, 각 주문마다 여러 메뉴를 선택하는 걸 볼 수 있습니다.

보통 우리는 식당을 가면 직원분에게 물어보죠.

"어떤 메뉴를 주로 먹나요?"

그럼 직원은 말합니다.

"토마토파스타와 파마산 치즈를 곁들인 마르게리따 피자를 주로 먹어요"

어떻게 직원은 그 판단을 할 수 있었을까요?

데이터를 잠시 관찰해봅시다.

여기서 우리는 3가지를 추출해내야 합니다.

1. 음식량 순위 체크 - quantity

2. 주로 먹는 음식명 - item_name

3. 음식별 인기 있는 선택 옵션 - choice_description

자 그럼 그 외의 사용하지 않는 데이터는 지우겠습니다.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

file_path = './data/chipotle.csv'

#sep = seperate, 탭으로 구분한다.
chipo = pd.read_csv(file_path)

chipo.drop(['order_id', 'item_price'], axis='columns', inplace=True)
chipo

DataFrame에서 열을 삭제하는 방법은 drop함수를 이용하면 됩니다. "inplace=True"의 의미는, 해당 변화를 즉각적으로 해당 DataFrame에 반영하겠다는 의미입니다. False로 한다면 새로운 DataFrame에 변경 내용을 담아주도록 해야 합니다.

근데 choice_description의 데이터 상태가 안 좋네요. NaN도 있고(결측값) 소스값만 있는 경우도 있고, 소스와 재료가 같이 있는 경우까지 3가지가 섞여있습니다.

먼저 정제를 좀 해야겠군요.

아무것도 곁들이지 않은 경우는 origin으로 하겠습니다.

chipo['choice_description'].fillna('Origin', inplace = True)
chipo

다음으로는 소스와 재료를 나누겠습니다.

현재는 [ [소스], [재료] ] 이렇게 나뉘어있으니, 두 개의 열로 쪼개겠습니다.

*쪼갤 때 구분자 제거 등 정제하는 과정은 다음 글에서 별도로 올리도록 하겠습니다.

https://blog.naver.com/moongda0404/222729175070

 

[Python Data Analysis 기초 4] 파이썬 데이터 전처리 연습

*본 글은 Python3을 이용한 데이터 분석(Data Analysis)을 위한 글입니다. 이번 글에서는 분석 진행을 ...

blog.naver.com

.

.

정제를 하니 데이터가 이렇게 잘 나뉘었네요.

그럼 이제 다음으로, 중복되는 데이터를 합쳐봅시다.

이전에 썼던 groupby와 value_counts를 쓰면 될 것 같습니다.

result_tmp=chipo.groupby(['item_name','saurce'])['ingredient'].value_counts()
result_tmp=result_tmp.to_frame()
result_tmp

이제 해당 데이터를 엑셀로 내려받습니다.

file_path='./data/chipotle_result.csv'
result_tmp.to_csv(file_path,sep=',')

insight :

필터를 걸고 판매 순위를 보니 'Chips and Guacamole'가 제일 인기가 많네요.

재미있는 점은 'Chicken Bowl'에 'Fresh Tomato Salsa'를 뿌리고 'Fajita Vegetables, Rice'를 곁들여서 먹는 사람이 17명이나 됩니다.

뭔가 인기 있는 조합인가 보네요.

그럼 다음 글에서는 오늘 포스팅했던 데이터들 관련 그래프와 차트를 표현해보겠습니다.

반응형

댓글