목록분류 전체보기 (184)
영국 척척석사 유학생 일기장👩🏻🎓
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/7PVlv/btsHxI5jWuR/87QuqPhIkYBwadwgUAkhx0/img.png)
1. Seaborn으로 막대 그래프 작성하기도수를 나타내는 기본적인 막대 그래프는 seaborn의 countplot함수를 사용하여 작성할 수 있습니다.seaborn.countplot(*, x=None, y=None, data=None, order=None, orient=None, color=None) 1) 막대 그래프 색상 지정하기#필요한 패키지 불러오기import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns#csv 파일을 읽은 다음 뒤에서부터 10개의 행 확인하기df = pd.read_csv('diamonds.csv')print(df.shape)df.head(10)#명령문 끝에 세미콜론(;)을 추가하..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c1mO8I/btsHymMS5v0/1XkZMY6bizWXnoQvFSKLs0/img.png)
예제) 각 channel의 하루 평균 이벤트 수먼저, DATE_TRUNC를 이용해 날짜별로 그룹을 만들어줍니다.DATE_TRUNC개념 🔻 (SQL) DATE_TRUNC DATE_PART 개념 및 연습문제1) DATE_TRUNC날짜, 시간 열의 특정 부분으로 날짜를 자를 수 있습니다.RESULTINPUT2024-04-01 12:15:01DATE_TRUNC('second', 2024-04-01 12:15:01)2024-04-01 00:00:00DATE_TRUNC('day', 2024-04-01 12:15:01)2024-04-01 00:00:00DATE_TRUNC('month',life-of-nomad.tistory.comSELECT DATE_TRUNC('day', occurred_at) AS day, ch..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/clCaip/btsHuJ4mxEo/X70MwHX7Huhy1JUwK0ZiBK/img.png)
데이터의 문제점을 해결하고 나서는 바로 시각적 방식이나 프로그래밍 방식의 평가를 통해서 정제 작업이 성공적이었다는 것을 확인해야 합니다. 즉, 평가 및 테스트의 워크플로를 효과적으로 구성해야 합니다.* Test-Driven development(테스트 주도 개발) : 소프트웨어 개발을 완료하기 전에 지속적인 테스트를 수행하여 소프트웨어의 효과성을 검증하는 것이 글에서는 데이터 정제 작업의 효과를 평가하는 방법을 알아보겠습니다. 1. Heatmap 이용하기먼저, .head() 나 .tail()을 이용해서 데이터를 시각적으로 살펴볼 수 있습니다.#import librariesimport pandas as pdimport numpy as npimport seaborn as sns#Read the .json ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/DlvbY/btsHwyGXOd2/nJjOvPwJotvTvQIIY2LKNk/img.png)
파이썬의 datetime 이용해서 time series(시계열) 데이터를 정제해보겠습니다.time series는 시간에 따른 데이터를 저장할 때 자주 사용되는 데이터 형식입니다. 이는 일정한 시간 간격으로 수집한 일련의 데이터 포인트들로써 시간에 따른 추세, 패턴을 분석하거나 예측하는 데 사용됩니다.이 글에서는 pandas에서 날짜 데이터를 처리하고 시계열 데이터를 정제하는 방법을 알아보겠습니다.time series(시계열) datetime 모듈에 대한 참고자료는 아래와 같습니다. (파이썬 코딩일기) datetime 모듈import datetime스탠다드 라이브러리에 있는 datetime 모듈은 '날짜'와 '시간'을 다루기 위한 다양한 '클래스'를 갖추고 있습니다. 1. datetime 값 생성2020..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/zi0C7/btsHvYlfAp5/EkuwxAGCT6PE1OntSWLbQ0/img.png)
지난 글에 이어서 간단한 예시로 텍스트 데이터를 정제해보겠습니다. (데이터분석) 파이썬으로 텍스트 데이터 정제 함수 만들기1. 텍스트 데이터 정제 함수 만들기import nltkfrom nltk.tokenize import word_tokenizefrom collections import Counterfrom text import TEXTnltk.download('punkt')corpus = TEXTtokenized_words = word_tokenized(corpus)#등장 빈도 기준 정제 함life-of-nomad.tistory.com import pandas as pdtxt_data = pd.read_csv('text_data.csv') 1. Nomalize data 정규화txt_data.head(..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cXUXpx/btsHvwba6Bb/NQ4r76q7hRRZJObYyiKKw1/img.png)
1. 텍스트 데이터 정제 함수 만들기import nltkfrom nltk.tokenize import word_tokenizefrom collections import Counterfrom text import TEXTnltk.download('punkt')corpus = TEXTtokenized_words = word_tokenized(corpus)#등장 빈도 기준 정제 함수def clean_by_freq(tokenized_words, cut_off_count): #파이썬의 Counter 모듈을 통해 단어의 빈도수 카운트하여 단어 집합 생성 vocab = Counter(tokenized_words) #빈도수가 cut_off_count 이하인 단어 set 추출 uncommon_wo..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dUd0v9/btsHvJIblRb/c8aOLU0YIcmWomHg7XmzB1/img.png)
사이킷런으로 할 수 있는 전처리 도구에 대해 몇 가지 알아보겠습니다. 1. Scikit-learn Pre-processing 사이킷런 불러오기import sklearnimport numpy as mpfrom sklearn.preprocessing import OneHotEncoder, StandardScaler, OrdinalEncoderfrom sklearn.imput import SimpleImputerfrom sklearn import set_config#sklearn 패키지의 transform과 fit_transform 함수가 pandas DataFrame 형식으로 결과를 출력하게 하는 설정set_config(transform_output = "pandas") 2. Scaling (데이터 표준화)..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bcOuMs/btsHu8uttIQ/PxMzgdrsB6W2aSYlafRDx1/img.png)
데이터 품질을 점검할 때는 일반적으로 완전성 문제를 먼저 처리하는 것이 좋습니다. 그러면 이후에 누락 데이터로 인한 정제 과정을 반복할 필요가 없기 때문입니다. * 결측 데이터 및 데이터 정돈 문제문제 1) 하나의 열에 여러 개의 변수 존재문자열 처리 및 unpivoting을 통해 해결합니다.(step 1) 결측 데이터 처리하기 (Clean Missing Data)#데이터 불러오기import pandas as pdimport numpy as nppatients = pd.read_csv('patients.csv')treatments = pd.read_csv('treatment.csv')adverse_reactions = pd.read_csv('adverse_reaction.csv')#결측값 존재 확인 및..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cMCWwC/btsHsrnOPMm/zVqjbBIFk0uz2exWcOuBC1/img.png)
1. 문제1) total_amt_usd 판매액이 가장 많은 각 region에서 sales_rep의 name을 제공하십시오.sales_rep과 관련된 total_amt_usd 총계, region 나타내기SELECT s.name rep_name, r.name region_name, SUM(o.total_amt_usd) total_amtFROM sales_reps sJOIN accounts aON a.sales_rep_id = s.idJOIN orders oON o.account_id = a.idJOIN region rON r.id = s.region_idGROUP BY 1,2ORDER BY 3 DESC; 각 region에 대한 total_amt_usd 가져오기SELECT region_name, MAX(tot..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bCpmYn/btsHsYrTV5S/B5WQQX5p3FlAewJF2ulHLk/img.png)
import pandas as pdimport numpy as np#read dataframedf = pd.read_csv('assessment.csv')#Drop a rowsdf.head()df.describe()df.info()df.sample(5, random_state = 70)df.loc[df['assessment score 2'].isin(['#'])]df['assessment score 2'] = df['assessment score 2'].replace({'#':np.nan})dfdf.loc[df['assessment score 2'].isin(['#'])]df.isna().sum() Option 1 : drop rowscleaned_df = df.dropna()cleaned_df.desc..