[빅데이터분석기사] 데이터전처리 100제
·
Data/빅데이터분석기사
6번째 컬럼의 데이터 타입을 확인하라 dtypedf.iloc[:,5].dtype 6번째 컬럼의 3번째 값은 무엇인가? iloc[행, 컬럼]df.iloc[2, 5] 데이터를 로드하라. 컬럼이 한글이기에 적절한 처리해줘야함 encoding="euc-kr"DataUrl = "https://raw.githubusercontent.com/Datamanim/pandas/main/Jeju.csv"df = pd.read_csv(DataUrl, encoding="euc-kr")df 수치형 변수를 가진 컬럼을 출력하라 select_dtypes(exclud="object")df.select_dtypes(exclude="object").columns 각 수치형 변수의 분포(사분위, 평균, 표준편차, 최대 , 최소)를 확인하라..
[빅데이터분석기사] 작업형2 머신러닝 - 머신러닝 학습 및 평가(분류/회귀)
·
Data/빅데이터분석기사
# predict_proba로 바로 예측 가능pred = lgbmc.predict_proba(test)pred# 클래스 확인lgbmc.classes_# 파일 생성submit = pd.DataFrame({'pred':pred[:,1]})submit.to_csv("result.csv", index=False)# 파일이 잘 생성됐는지 확인pd.read_csv("result.csv")추천 머신러닝 모델랜덤포레스트lightGBM랜덤포레스트와 lightGBM은 각각 분류모델/회귀모델이 있다. 이 두가지를 비교해서 최종적으로 하나만 선택하는 것을 추천머신러닝 학습 및 예측방법(3가지)모델 불러오기학습 fit(X,y)예측 predict(test) ex) 여자|남자또는 predict_proba(): 평가지표가 roc-a..
[빅데이터분석기사] 작업형2 머신러닝 - 데이터 전처리(인코딩, 스케일링), 검증 데이터 분할
·
Data/빅데이터분석기사
인코딩(필수⭐️ 반드시 해야한다)문자열데이터를 숫자형데이터로 변경해줘야한다!1. 타겟 값을 별도의 변수에 저장한다.인코딩 전 가장 먼저 해야할 일은 타겟 값을 별도의 변수에 담아놓는 것.문자형 변수가 아니고 숫자형 변수더라도 꼭 타겟값을 별도의 변수에 저장해놓아야 나중에 변경되지 않는다!y_train = train.pop("income") 이후, 원핫인코딩과 레이블인코딩 중 원하는 인코딩 방법을 사용해 인코딩하면 된다.2-1. 원핫인코딩원핫 인코딩은 단어 집합의 크기를 벡터의 차원으로 만들어 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식이다. 문자 데이터를 컬럼으로 바꾸고 0이나 1 혹은 True나 False로 값을 지정하는 방식이다.pandas..
[빅데이터분석기사] 작업형2 머신러닝 - 데이터 전처리(결측치, 이상치)
·
Data/빅데이터분석기사
머신러닝에는 지도학습, 비지도학습, 강화학습이 있는데 작업형2에서는 지도학습이 출제되고 있다.비지도학습은 시각화가 되어야하는데, 구름 환경에서는 시각화를 할 수 없기 때문에 출제되기 어렵고 강화학습은 그냥 어려워서 패스. 전통적인 접근방식과 머신러닝 접근방식작업형2는 정답이 없기 때문에 평가를 한다. (구간으로 평가)머신러닝 데이터로 넣기 위해서는 전부 숫자로 바꿔야한다. 그래서 자료형이 숫자인지/문자인지 꼭 확인해야한다.결측치가 있는 데이터가 작업형2에서 나온 적은 아직까지 없었음 ! predict는 0과 1 이탈여부처럼 정답이 주어진 경우 분류 모델을 사용하고, (평가지표: 모든 평가지표)매출을 예측하는 경우에는 회귀 모델을 사용하면 된다. (평가지표: 모든 평가지표) 다만, 분류이면서 평가지표가 R..
[빅데이터분석기사] 작업형1 모의문제3+4
·
Data/빅데이터분석기사
index '2001' 데이터(행)에서 해당 행의 평균보다 큰 값의 개수를 A라 한다.index '2003' 데이터(행)에서 해당 행의 평균보다 작은 값의 개수를 B라 한다.A와 B를 더한 값을 구하여 답으로 제출하라.# 데이터 생성(먼저 실행해 주세요)import pandas as pdimport randomrandom.seed(2022)df = pd.DataFrame()for i in range(0, 5): list_box = [] for k in range(0, 200): ran_num = random.randint(1,200) list_box.append(ran_num) df[i+2000] = list_boxdf = df.Tdf.to_csv("data.cs..
[빅데이터분석기사] 작업형1 모의문제1+2
·
Data/빅데이터분석기사
f1컬럼~의 결측치는 중앙 값으로 대체하고나머지 결측치가 있는 데이터(행)을 모두 제거하고,앞에서부터 70% 데이터 중 views 컬럼의 3사분위 수에서 1사분위 수를 뺀 값을 구하시오(단, 데이터 70% 지점은 정수형(int) 변환)# 결측치가 얼마나 있는지 확인# df.isna().sum()#1df['f1'] = df['f1'].fillna(df['f1'].median())#2# df.shapedf = df.dropna(axis=0)# df.shape#3df = df[ :int(len(df) * 0.7)]# print(len(df))answer = df['views'].quantile(.75)-df['views'].quantile(.25)print(answer) 데이터의 N%지점 구하는 법: 만약 5..
[빅데이터분석기사] 판다스7-시계열데이터2
·
Data/빅데이터분석기사
시계열 데이터를 불러올 때 특정 컬럼만 가져오고 싶다면 usecols를 사용하면 된다.해당 컬럼이 년월일 시분초로 되어있다면 parse_dates 사용해서 dateframe형식으로 넣어주면 된다.df = pd.read_csv("date.csv", usecols=["DateTime4"], parse_dates=["DateTime4"])df datetime을 사용하면 현재시간을 받아올 수 있으며, timedelta로 datetime 객체의 더하기 빼기를 수행할 수 있다.Timedelta(days=더할날짜) 이후 데이터프레임에 변수 day를 더해주면 된다.Timedelta(hours=더할시간) 이후 데이터프레임에 변수 timed을 더해주면 된다.# 100일째 되는 날day = pd.Timedelta(days=..
[빅데이터분석기사] 판다스6 - 시계열 데이터1
·
Data/빅데이터분석기사
최근들어 작업형1에서 시계열 데이터 문제가 출제되고 있음 (⭐️)import pandas as pddata = { 'Date1': ['2024-02-17', '2024-02-18', '2024-02-19'], 'Date2': ['2024:02:17', '2024:02:18', '2024:02:19'], 'Date3': ['24/02/17', '24/02/18', '24/02/19'], 'Date4': ['02/17/2024', '02/18/2024', '02/19/2024'], 'Date5': ['17-Feb-2024', '18-Feb-2024', '19-Feb-2024'], 'Date6': ['2024년02월17일', '2024년02월18일', '2024년02월19일']..
[빅데이터분석기사] 판다스5 - 그룹핑, 병합, 피벗테이블
·
Data/빅데이터분석기사
그룹핑이 점점 중요해지고 있음! (⭐️)1. 그룹핑groupby를 사용해 기준컬럼대로 그룹핑을 실행# 원산지 기준, 평균df.groupby(['원산지']).mean(numeric_only=True)# 원산지와 칼로리 기준, 평균df.groupby(['원산지','칼로리']).mean(numeric_only=True) 여러 기준컬럼과 여러 값(평균, 합계 등등..)을 그룹핑할 때, 여러 개의 함수를 한번에 적용하고 싶을 땐 agg를 사용# 원산지와 메뉴 기준 (평균, 합계)df.groupby(['원산지', '메뉴']).agg(['mean','sum']) 그룹핑된 인덱스에서 개별 인덱스 형태로 리셋할 때는 뒤에 reset_index()만 붙여주면 된다.# 1개 인덱스 형태로 리셋df.groupby(['원산지'..
[빅데이터분석기사] 판다스4 - 문자열, 내장함수
·
Data/빅데이터분석기사
import pandas as pddf = pd.DataFrame({'A': ['데이터 분석', '기본 학습서', '퇴근 후 열공'], 'B': [10, 20, 30], 'C': ['ab cd', 'AB CD', 'ab cd '] })df1. 문자열str 사용해서 문자열 내의 값 변경 (ex. '데이터 분석'에서 '분석'만 바꾸고 싶을 때)단, 숫자는 변경 불가. 문자만 가능.df['A'] = df['A'].str.replace('분석', '시각화')df 문자열 분리(컬럼 내에서 분리 자바의 split(" "))df['A'].str.split()첫번째 행 데이터만 선택df['A'].str.split()[0]..