개발/개발일지(국비지원)

2022년 12월 13일 화요일(데이터의 시각화)

후누피 2022. 12. 13. 21:28
728x90

24행

.shape 를 통해 해당 데이터의 

행과 열의 갯수를 알수있다.

 

35-36행

기존 정수형의 데이터를 

astype을 통해  문자열형태로 바꾸었다.

 

38-41행

판매상품명(item_name) 컬럼의 

상품명과 해당하는상품의 갯수를 조회하는

방법이다.

 

48-50행

item_price는 현재 

$하나 때문에 문자열형태이므로

해당 문자를 지워주고, 실수형으로 변경해주었다.

데이터명['컬럼명'].str.replace("해당문자","").astype(float)

를 통해 $문자를 공백으로만들어버린다.

 

59-62행

문자열형태를 람다식을 통해 실수형으로 만드는방법이다.

.apply라는 함수를 배웠다.

apply함수는 함수 또는 람다식을 매개변수로 받는다.

 

91행

주문당 평균 주문금액을 구하는방법이다

groupby를 통해 

주문별로 묶고

주문별로묶인 상품가격들만조회해준다.

.sum().mean()을 통해

주문당 평균주문금액을 조회할수있다.

 

105-11행

주문번호별 합계금액을 구하는방법이다.

order_id_tot변수에 

chipo_groupby('order_id').sum()

주문별 합계금액을 조회한 결과가 들어간다.

그중 50달러이상인 주문번호를 조건을주어야한다.

result변수에

order_id_tot[order_id_tot['item_price'] >=50]

주문별 합계금액데이터만 담겨있는 데이터에서

item_price 가 50이상인 조건을 부여해주어

result에 담아준다.

 

113-118행

앞서구한 result를 활용하여

전체데이터의 order_id(주문번호)와

result.index(주문번호)가 같은 데이터만

chipo_50 객체에

저장해준다.

 

127-130행

price_one 객체에 

item_name별 단가(최소값)를 조회할것이다.

 

단가의 분포를 히스토그램으로 출력해보았다.

134행 : 그래프를 출력하기위해 import해준다.

135행 : 해당그래프의 폰트를 설정해준다.

136행:그래프의종류 hist를 설정해준다.

137행 : ylabel y축의 제목을 설정해준다.

138행 : 그래프의 제목을 설정해준다.

 

140-143행

그래프를 출력하는 2번째방법이다.

데이터명.plot(kind="그래프종류")를 작성하고

ylabel과 title을 위와동일한방법으로 작성하여 그래프를 출력해주었다.

 

145-146행

단가가 가장높은 상품10개만 조회하기위해,

데이터명.sort_values(ascending=False)[:10]을 통해

정렬을해준다.

ascending=False를 통해 내림차순정렬을해주고 0~9인덱스의 값만 조회되도록해

결국 단가가 가장높은 10개의 데이터만 조회된다.

 

148-150행

max_item= price_one.max()를통해

max_item 변수에 단가가 가장높은 상품의 데이터를 저장해주고,

 

price_one[price_one==max_item].index)

를 통해 price_one중 max_item과 값이같은 index를 출력하여

상품의 이름을 조회해준다.

 

152-154행

주문당 주문금액이 가장높은 5건의 주문총수량 조회.

chipo.groupby('order_id').sum().sort_values(by='item_price',ascemding=False)[:5]

그룹바이를 통해 먼저 주문번호로 묶어주고

주문당 주문금액이므로 sum을통해 주문번호각각의 금액을 합쳐준다.

주문당 주문금액은 완성되었고, 가장높은 5건을 출력해야하기때문에

sort_values(by='item_price',ascending=False[:5]를 통해

내림차순정렬로 5건만 조회되게 해주었다.

결과적으로 price5 객체에는 주문당 주문금액이 가장높은 5건의 데이터가 저장된다.

 

163-165행

주문당 주문금액이 높은 5건의 주문의 정보를 조회하는 방법이다.

현재 price5에 주문장 주문금액이 높은 5건의 데이터가 담겨있다.

이것을 활용해,

chipo[chipo['order_id'].isin(price5.index)]

원래데이터 chipo의 주문번호와 price5의 인덱스(주문번호)를

비교하여 같은것을

chipo에서 찾아,

그중 원하는 컬럼

order_id,item_name,quantuty,item_price 컬럼을

조회하여

chipo_5에 저장한다.

chipo_5에는 결과적으로

주문당 주문금액이 가장높은 5건에 해당하는

주문번호,상품명,갯수,상품가격 4가지의 컬럼의 대한 데이터를 담고있다.

 

183-186행

중복된 컬럼을 제거하는방법이다.

데이터명.drop.duplicates(['제거할컬럼1','제거할컬럼2']) 을 통해

원하는 컬럼을 제거할수있다.

 

상관계수에 대해 다시 학습하였다.

이전에 배운것은

corr()만 사용하여 기본값을 사용하였는데,

기본값은 피어슨 상관계수이다.

그외의

corr(method="kendall") : 켄달상관계수

corr(method="kendall") : 스피어만 상관계수가 있다.

 위의 상관계수를 통해

한눈에 알아보기 위해 데이터를 

히트맵을 통해 시각화하였다.

 

drinks 데이터를

산점도와 회귀선그래프로

시각화한 형태이다.

 

268행

fillna("")를 통해

원하는컬럼의 결측값을 원하는 형태의 문자열로 변경해준다.

 

272행

continent.value_counts()를 통해

EU 15

AS 12 

이러한 형태의 시리즈객체로 된상태이다.

거기서 .index로 EU,AS...등을 가져와

tolist()를 사용하여

[EU,AS...]이러한 형태를

labels에 저장한다.

 

276행

explode 는 파이의 위치를 지정해준다. 0은 파이의 본연으위치 0.1은 

조금 튀어나오게 설정될것이다.

 

 

대륙별 알콜섭취량 평균을 시각화하기위해서

선언해주는 부분이다.

위에 선언했던 값들을 가져와서

354행 

마지막 막대, 즉 전세계 평균 알콜섭취량은 빨간색으로

보기에 편하게 해주었고,

 

360행

plt.plot([0,6],[total_mean,total_mean], "k-")를 통해

평균값에 해당하는 실선그래프를 그려주었다.

 

362행

x축을 따로 설정을 다시해주지않으면

x_pos(0~6)의 값으로 나오기때문에

xticks('기존x축값', '바꿀x축값')으로

변경하여

대륙이름으로 x축을 변경해주었다.

 

위의 방법과동일하게,

데이터를 원하는 방식으로 처리하여

대륙별 평균 맥주 소비량 데이터를 가져오고,

시각화해주었다.

 

728x90