빅데이터 분석기사 66

index 번호 정리하기

Int64Index: 60208 entries, 0 to 19256 행이 60208 인데 인덱스가 19256 이상함~ # [3-6] df의 row의 개수 및 각 column의 정보 및 메모리 사용량을 확인합니다. # 몇몇 컬럼에 대한 정보가 부족한 것을 확인할 수 있습니다. # 인덱스번호가 0부터 14234까지 나와있음 이상함!!! df.info() Int64Index: 60208 entries, 0 to 19256 Data columns (total 9 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 측정일시 60208 non-null int64 1 측정소명 60208 non-null object 2 이산화질소농도(pp..

여러개 파일 합치기

way 1 파일 4개 합치기 # way 1 # [3-5] df2016, df2017, df2018, df2019를 합쳐 한 개의 DataFrame으로 만들어 df라는 이름을 지정합니다. dfList = [df2016, df2017, df2018, df2019] df = pd.concat(dfList,axis=0) # df의 shape을 출력하여 전체 행, 열의 수를 확인합니다. df.shape way 2 glob 묘듈의 glob 함수 # way 2 # 날짜가 쪼개져 있을 때도 있ㅇㅡㅁ # 글로브 모듈의 글로브 함수 사용 import glob glob.glob('data_01/data_day_*.xlsx') 정렬을 원하면 sorted() #[TIP] 만일 파일이름을 정렬하고 싶다면 sorted() 함수를 ..

그룹별 통계값 구하기

그룹별 맥주, 와인 소비량 [] -> 시리즈 [[]] -> 데이터프레임, 여러개 가능 # [2-55] 대륙별 맥주 소비량 평균은? # ['맥주'] 했을 때 시리즈 # [['맥주']] 목록을 줄 때 데이터프레임 # [['맥주','와인']] 여러개도 가능 df.groupby('대륙')[['맥주','와인']].mean() 대륙별 맥주량 평균 temp 저장 -> 맥주 평균보다 큰 데이터프레임 추출 # [2-56] 전세계 맥주 소비량 평균보다 많은 맥주를 소비하는 대륙은? temp = df.groupby('대륙')[['맥주']].mean() temp[temp['맥주'] > df['맥주'].mean()] agg([통계 메서드]) 여러개 통계 함수 사용시 # [2-57] 대륙별 맥주와 와인 소비량의 평균, 중앙값, ..

맥주 소비량 분석

http://blogkind.tistory.com/11 티스토리 글쓰기 버튼 만들기/메뉴 바로가기 안녕하세요. 티스토리를 하다보면 글쓰기 버튼이 없어서 당황하시는분들 많으실겁니다. 블로그인데 왜 글쓰기 메뉴가 안보일까요? 티스토리 글쓰기 버튼 만들기 티스토리 글쓰기 메뉴 만들기 blogkind.tistory.com 해야하는데.. 귀찮 & 사용시 () 필수 멀티시스 인덱싱 익숙해지기 # [2-48] 주류소비량이 있으면서, 맥주를 소비하지 않는 국가의 국가명 목록을 구해봅니다. # way 1 df[(df['주류소비량'] > 0) & (df['맥주'] == 0)]['국가'] # way 2 # values 도 ok # to_list() 사용시 리스트로 나옴 df.loc[(df['주류소비량'] > 0) & (df..

다양한 데이터 프레임 구조 조작 5/11

# [2-36] korea 정보 중에서 대륙 정보를 제거합니다. # 대입하지 않아서 반영되지 않음 korea.drop('대륙', axis = 1) # [2-32] 국가별 주류 소비량 합계(맥주, 증류주, 와인의 합)를 구해 봅니다. # sum()이라는 메서드 df.set_index('국가')[['맥주','증류주','와인']].sum(axis=1) # [2-33] df를 ['대륙', '국가']를 index로 지정하고, 대륙별, 국가명으로 정렬하여 df로 저장합니다. # 저장은 df = 필요함 df = df.set_index(['대륙','국가']).sort_index() # [2-34] df의 index를 모두 columns로 이동합니다. df = df.reset_index() 데이터프레임에서 특정 행, 열..

5/4 컬럼, 행의 추가/삭제

공부 쫌 하자.. 제발ㅜ ㅋㅋㅋㅋ ㅜㅜ!!! 쫌!! 산술연산 () 생략 가능 # [2-23] 와인 소비량이 맥주 + 증류주 소비량보다 큰 나라를 검색해,'대륙'을 기준으로 정렬해 보자 df[df['와인'] > df['맥주']+ df['증류주']].sort_values('대륙') 관계연산 () 필 # [2-24] 맥주 소비량이 230 초과이면서, 와인 소비량이 230 초과인 나라를 검색해 보자 # 관계연산 &, |은 () 필수 df[(df['맥주'] > 230) & (df['와인'] > 230)] 새로운 칼럼 추가 주류소비량 way 1 # [2-26] 국가별 주류 소비량 합계를 구해 새로운 컬럼 ('주류소비량')를 추가합니다 # 주류소비량 = '맥주' + '증류주' + '와인' df['주류소비량'] = d..

통계치 구하기

통계치 한 번에 확인 수치형 자료에 유용함 # [2-13] describe 함수를 사용해 전세계 맥주, 증류주, 와인, 알코올 소비에 대한 통계치를 구해봅니다. # 수치자료 정보만 가능 df.describe() 범주형 자료도 가능함 그닥 유용한 것은 아니지만 수치로 가능한 표현이 표현됨 # 범주형 자료가 가능한 수치로만 표현현 temp = df[['국가', '대륙']] temp.describe() 문자열 정렬 숫자 대문자 A시작인 AF max 사용 -> 대문자 S시작인 SA ord('0'), ord('1'), ord('A'), ord('B'), ord('a'), ord('b') (48, 49, 65, 66, 97, 98) # [2-20] df (objec..

결측치 처리

종류 알아보는 방법 unique() : 결측치 포함 value_counts() : 결측치 미포함 # [2-5] 대륙의 종류를 알아봅니다 # 결과를 보면 csv파일에서 'NA'로 되어 있는 데이터를 NaN(=nan)으로 가져온 것입니다. # 판다스 시리즈로 보면 NA # 어떤 데이터 타입인지에 따라서 표현이 달라짐 df['대륙'].unique() array(['AS', 'EU', 'AF', nan, 'SA', 'OC'], dtype=object) # 넘파이의 어래이로 보면 NaN으로 표현 pd.Series(df['대륙'].unique()) 0 AS 1 EU 2 AF 3 NaN 4 SA 5 OC dtype: object # na 결측치 정보는 제외하고 집계함 # [2-6] 대륙별 개수를 알아봅니다. df['..

4/27 csv 파일 가져오기

3.알코올을 가장 많이 마시는 나라는? country : 국가명 beer_servings : 맥주 소비량 spirit_servings : 증류주 소비량(독주, 알코올 함량 20% 이상의 설탕을 첨가하지 않은 증류주) wine_servings : 와인 소비량 total_litres_of_pure_alcohol : 순수 알코올 continent : 대륙 # [2-0] 사용라이브러리 import import pandas as pd # [2-1] drinks.csv 파일을 DataFrame으로 불러오기 합니다. # ./ : 현재 시점에 있는는 df = pd.read_csv('data_01/drinks.csv') # [2-2] df의 데이터 모습을 확인하기 위해 첫 5개 데이터를 출력합니다 df.head() # ..

series의 통계값

소수점 둘째자리 표현 # 소수점 아래 2째자리까지 표시되도록 설정하기 pd.options.display.float_format = '{:,.2f}'.format 통계치 # [1-45] subscriber, view, video에 대한 통계값을 알아봅니다. (describe 사용) df.describe() 아는 내용 생략함 최빈값 : mode() -> 여러 개일 수 있기 때문에 series 한 값을 구하려면 인덱싱 사용 # [1-51] 'subscriber'의 최빈값을 구합니다. => Series # 최빈값은 여러개일 수 있기 때문에 series임!!! df['subscriber'].mode() # 한 값만 구하기 위해서는 인덱싱할 수 있음음 df['subscriber'].mode()[0] IQR # [1..