빅데이터-데이터에서 인사이트 발견하기

장민식·2021년 12월 8일
1

빅데이터

목록 보기
1/2

.csv 파일=.콤마로 구분하는 파일

.tsv 파일= Tap으로 구분하는 파일

순서
(외향 탐색)
1.rawdata의 출처와 주제에 대해 이해하기
2.대략적인 데이터의 크기 알아보기.(샘플링 하기:전체 데이터를 사용 못 하는 크기 일 때)
3.데이터의 구성 요소(피처:데이터를 구성하는 요소)

(속성 탐색)
1.피처의 속성 탐색(우리반의 평균 키는 얼마일까?)
2.피처 간의 상관 관계 탐색
3.탐색한 데이터를 기반하여 시각화 하기

pandas 로 데이터 불러와서 분석하기

<step1: 탐색>:데이터의 기초 정보 살펴보기

[Chipotle 데이터셋의 기본 정보]

read_csv() 함수로 데이터를 Dataframe 형태로 불러옵니다.
pd.read_csv("파일경로를 포함한 파일명",sep="구분자")

file_path='../data/chipotle.tsv'
chipo=pd.read_csv(file_path,sep='\t')

print(chipo.shape)
print("------------------------------------------------")
print(chipo.info())

head(행,열 원하는 갯수) 순서대로 row 데이터를 보여줍.
갯수 생략시 디폴트 값으로 5개의 데이터를 보여줌

chipo.head(10)

columns()함수로 컬럼의 정보를 보여줌

print(chipo.columns)
print("-----------------------------------")
print(chipo.index)

--피처--
칼럼들 중에서 수치적으로 계산가능한 부분만 출력
chipo.describe()

order_id는 숫자의 의미를 거치지 않기 떄문에 str으로 변환합니다
chipo['order_id']=chipo['order_id'].astype(str)
chipo dataframe에서 수치형 피처들의 요약 통계량을 확인합니다
chipo.describe()

unique 함수로 범주형 피처의 개수 출력하기
len(chipo['order_id'].unique())
len(chipo['item_name'].unique())

자신이 원하는 인사이트를 발견,탐색,시각화
가장 많이 주문한 item:top 10을 출력
chipo['item_name'].value_counts()[0:10]#0은 생략가능

가장 많이 주문한 아이템 탑10 이름 달아줌
value_counts()함수는 시리즈 객체에만 적용
item_count=chipo['item_name'].value_counts()[:10]
chipo 열에있는 벨류카운터를 통해 순서대로 뽑아온다.
for idx,(val,cnt) in enumerate(item_count.iteritems(),1):
print("Top",idx,":",val,cnt)

아이템별 주문 개수와 총량
groupby()함수를 이용하여 아이템별 주문 개수와 총량을 구함.

item당 주문 개수 출력
groupby()함수는 데이터 프레임에서 특정 피처를 기준으로 그룹을 생성하며 이를 통해 그룹별 연산 작용
order_count=chipo.groupby('item_name')['order_id'].count()
order_count[:10]

item당 주문 총량을 출력
item_quantity=chipo.groupby('item_name')['quantity'].sum()
item_quantity[:10]

시각화로 분석 결과 살펴보기
아이탬별 주문의 총량을 막대 그래프로 시각화
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
시리즈=내가 원하는 데이터프레임의 열값을 뜻함.

#아이탬별 주문의 총량을 막대 그래프로 시각화
item_name_list=item_quantity.index.tolist()
tolist()는 시리즈를 리스트로 변환하는 함수

x_pos =np.arange(len(item_name_list))
numpy.arange(시작,끝,간격)으로 배열 만들기
colors=['black','red','pink','yellow','blue','silver']
order_cnt= item_quantity.values.tolist()

plt.bar(x_pos,order_cnt,align='center',color=colors)
bar=막대그래프로 출력
plt.xlabel('ordered_item_count')
plt.title('Distribution of all orderd item')

plt.show()

profile
피나게노력중

1개의 댓글

comment-user-thumbnail
2021년 12월 8일

최고에요!

답글 달기