isin : Series의 각 원소가 넘겨받은 연속된 값에 속하는지 나타내는 bool배열을 반환
match : 각 값에 대해 유일한 값을 담고 있는 배열에서의 정수 색인을 계산.
unique : Series에서 중복되는 값을 제거하고 유일한 값만 포함하는 배열을 반환
value_count : Series에서 유일값에 대한 색인과 두수를 계산 (도수는 내림차순)
order_id : 주문번호
quantity : 아이템의 주문수량
item_name : 아이템 이름
choice_description : 주문아이템 상세 선택 옵션
item_price : 주문아이템의 가격
- 가장많이 주문한 아이템 top 10
- 가장 비싼 아이템 총 몇개 팔렸을까?
- Veggie Salad Bowl 이 몇 번 주문되었을까?
In [1]:
import pandas as pd
file_path = 'chipotle.tsv'
chipo = pd.read_csv(file_path,sep='\t')
In [2]:
chipo.head()
Out[2]:
1번¶
In [3]:
chipo['item_name'].value_counts()[0:10]
Out[3]:
In [4]:
chipo['item_price'].value_counts().sort_index()
Out[4]:
In [5]:
chipo['item_price'].unique()
Out[5]:
3번¶
In [6]:
sum(chipo[chipo['item_name']=='Veggie Salad Bowl']['quantity'])
Out[6]:
2번¶
- 가격을 전부 float 로 수정하자
In [7]:
item_name=chipo['item_name']
quantity=chipo['quantity']
item_price=chipo['item_price']
In [8]:
for i in range(len(item_price)):
item_price[i]=item_price[i].replace('$',"")
item_price[i]=item_price[i].replace(' ',"")
item_price[i]=float(item_price[i])
1개의 가격이 가장 높은 것들¶
In [9]:
item_per_price=item_price/quantity
max(item_per_price)
Out[9]:
In [10]:
sum(item_per_price==11.89)
Out[10]:
In [11]:
item_per_price.sort_values().tail(10)
Out[11]:
찾아보면 나오는 메뉴들
Steak Salad Bowl
Barbacoa Salad Bowel
실제로 이것들의 주문을 보면 전부 선택사항이 있었다.
In [12]:
chipo[chipo['item_name']=='Steak Salad Bowl']['choice_description']
Out[12]:
In [13]:
chipo[chipo['choice_description'].isnull()==True][chipo['quantity']==1].sort_values(by='item_price')
Out[13]:
In [14]:
chipo[chipo['choice_description'].isnull()==True][chipo['quantity']==1]['item_name'].unique()
Out[14]:
단품으로 주문한것들에는 포함되지 않는 것들이 많았음
In [15]:
chipo['item_name'].unique()
Out[15]:
In [16]:
sum(chipo[chipo['item_name']=='Steak Salad Bowl']['item_price'])/sum(chipo[chipo['item_name']=='Steak Salad Bowl']['quantity'])
Out[16]:
In [17]:
mean_price=[]
In [18]:
chipo['item_name'].unique()[0]
Out[18]:
저희는 절대 추가 사항마다의 가격을 구할 수가 없습니다. 각각의 가격이 적힌 메뉴표가 저희한테는 존재하지 않습니다. 그래서 각 메뉴들의 평균 값을 계산해봅시다. 각 주문에는 그 상품의 가격이 무조건 포함. 선택사항은 사람마다 다릅니다.
In [19]:
for i in chipo['item_name'].unique():
mean_price.append(sum(chipo[chipo['item_name']==i]['item_price'])/sum(chipo[chipo['item_name']==i]['quantity']))
In [20]:
max(mean_price)
Out[20]:
In [21]:
mean_price
Out[21]:
그렇게 찾은 메뉴
In [22]:
chipo['item_name'].unique()[-16]
Out[22]:
In [23]:
sum(chipo[chipo['item_name']=='Steak Salad Bowl']['quantity'])
Out[23]:
In [24]:
chipo[chipo['item_name']=='Steak Salad Bowl']['choice_description']
Out[24]:
In [25]:
#비슷한 가격의 다른 제품을 보자
chipo['item_name'].unique()[-6]
Out[25]:
추가사항이 비슷함
In [26]:
chipo[chipo['item_name']=='Carnitas Salad Bowl']['choice_description']
Out[26]:
In [27]:
sum(chipo[chipo['item_name']=='Steak Salad Bowl']['quantity'])
Out[27]:
'Python' 카테고리의 다른 글
Python_example (0) | 2020.09.11 |
---|---|
python_pandas(판다스): 계층적 색인 지정, 누락된 데이터처리, 결측치채우기, 데이터 변형하기, onehot인코딩 (0) | 2020.09.11 |
Python_pandas(판다스):시리즈,데이터프레임,색인,인덱싱,sorting (0) | 2020.09.09 |
Python 기초09_vectorize (0) | 2020.09.08 |
Python 기초08_matplotlib(그래프 그리기,subplots,meshgrid) (0) | 2020.09.08 |