MLOps 부트캠프 by 한경+토스뱅크 76

DataFrame - 결측값 처리하기(삭제/대체)

결측값 삭제하기df.dropna()airbnb_df.dropna() # 결측값 삭제하기 결측값을 다른 값으로 채우기df.fillna() airbnb_df['rating'].mean() # 1 - 'rating'컬럼의 평균값 확인rating_mean = airbnb_df['rating'].mean() # 2 - 1의 값을 rating_mean변수에 저장airbnb_df['rating'].fillna(rating_mean) # 3 - 결측값을 2의 값으로 채움 예제)효준이는 새로운 스마트폰을 구입하기 위해 애플과 삼성의 스마트폰 데이터를 수집했습니다. 그런데 실수로 특정 모델의 무게를 입력하는 것을 깜빡했다고 하는데요. 다행히 한 가지 모델만 누락되어 있고, 모델명이 같으면 용량이나 색상과 관계없이 무게가 ..

DateFrame - 결측값 찾기

Garbage in, Garbage out쓰레기를 넣으면, 쓰레기가 나온다 데이터의 퀄리티가 좋지 않다면, 의미있는 분석 결과를 얻기 어렵다. 이를 위해 원본 데이터를 분석하기 용이하게 다듬는 과정을 거치게 되는데, 이를 '데이터 전처리'라고 한다. df.info() airbnb_df.info() # 결측값을 제외한 데이터 수를 확인할 수 있음df.isna()airbnb_df.isna() # 데이터 프레임에서 결측값이면 True, 결측값이 아니면 False값을 출력함df.isna().sum()airbnb_df.isna().sum() # 컬럼별로 결측값의 개수가 계산됨(True=1, False=0)df.any()airbnb_df.insa().any(axis=1) # .any() 데이터프레임의 각 요소를 차..

DataFrame - drop() 함수로 데이터 삭제하기(feat.axis)

drop() 함수는 Pandas 라이브러리에서 데이터프레임이나 시리즈에서 특정 행이나 열을 삭제할 때 사용되는 메서드다. 주로 데이터 분석을 할 때 필요 없는 데이터나 특정 기준으로 데이터를 정리하고 싶을 때 유용하다.  로우를 삭제할 때는 함수 안에 바로 삭제할 로우의 인덱스 값을 넣어 주면 되고, 컬럼을 삭제할 때는 columns라는 파라미터를 사용해서 삭제할 컬럼의 이름을 넣어 주면 된다.# married 컬럼 삭제하기loan_df.drop(columns='married') import pandas as pd# 데이터프레임 생성df = pd.DataFrame({ '이름': ['철수', '영희', '민수', '지영'], '수학': [85, 92, 70, 88], '영어': [78, 8..

DataFrame - query() 함수 사용하기

query() 함수는 데이터 분석 라이브러리인 Pandas에서'DataFrame.query().' 메서드를 사용해 특정 조건을 만족하는 데이터를 쉽게 추출할 수 있다. 기본 사용법 - 불린 인덱싱하기query() 함수는 문자열로 표현된 조건식을 받아, 그 조건을 만족하는 데이터프레임의 행을 반환한다. 이는 SQL의 'SELECT ... WHERE...' 절과 유사하게 동작한다. 또, query() 함수를 사용한다면 보다 간결한 코드로 DataFrame에서 불린 인덱싱을 할 수 있다.내부적인 작동 방식은 대괄호를 사용하여 불린 인덱싱을 하는 것과 거의 동일하지만, 데이터가 많은 경우 query() 함수를 쓴다면 속도가 조금 느려질 수 있다.# 대출 신청자의 수입이 5,000 이상이다' 라는 조건식을 불린 ..

DataFrame - csv, 엑셀(xls) 파일을 DataFrame으로 불러오기 / 내보내기

엑셀(xls) 파일을 DataFrame으로 불러오기주로 csv 파일을 사용하지만xls도 사용하는 경우가 있으므로 정리하기로 함 df = pd.read_excel('data/df.xlsx', sheet_name=1, header=3, usecols='B:H') # df 이름으로 된 xlsx 파일을 불러와서 df라는 이름으로 저장함# sheet_name=1: xls파일에서 Sheet2의 파일을 불러와야 하므로 '1'을 넣어줌(0부터 시작하므로)# xls 파일의 Sheet2에선 header가 네 번째 줄부터 시작하므로, header=3 을 넣어줌# usecols라는 파라미터를 이용해 몇 번째 열부터 시작하는지 알려줌CSV 파일로 내보내기pandas의 to_csv() 함수를 사용하면 DataFrame을 CSV ..

describe() vs describe - 괄호가 붙는 '함수'와 붙지 않는 '변수'

pandas에서 함수를 사용할 때, 뒤에 괄호가 붙는 경우가 있고 붙지 않는 경우를 볼 수 있다.  가령 head(), infio(), sort_values()에는 괄호를 붙이는데, dtypes, shape 뒤에는 괄호를 붙이지 않는다.  처음엔 무지하게 헷갈림... 그냥 그런 명령어겠거니 생각하고 넘어갔는데, codeit 듣다가 정리된 글을 발견함 ㄷㄷ 뒤에 괄호가 붙는 건 DataFrame에 동작하는 '함수' 괄호가 붙지 않는 건 DataFrame의 정보를 담고 있는 '변수'   예를 들면, df.describe()는 통계값을 계산하는 describe()라는 함수를 df라는 DataFrame에 적용하는 코드라고 볼 수 있고,  df.shape는 DataFrame의 크기 정보가 저장되어 있는 변수를 가..

Git 활용하기(git reflog, --all, --graph, git merge vs git rebase)

git reflog: HEAD가 가리켰던 commit들의 id 확인하기, 헤드가 이때까지 가리켜왔던 커밋들을 기록한 정보(reference log의 줄임말)git log --pretty=oneline --all: 모든 브랜치의 log 기록 출력--graph: 커밋 히스토리가 각 브랜치와의 관계가 잘 드러나도록 그래프 형식으로 출력git log --pretty=oneline --all --graphgit rebase: 베이스를 다시 지정하다. 커밋을 재배치한다. -> 프리미엄 브랜치의 베이스를 테스트 브랜치로 재지정git rebase --continue: 컨플릭트가 발생해서 제대로 진행되지 못한 리베이스를 계속 진행하라.

차원 축소 알고리즘

차원의 저주: 차원이 커지면 커질수록 데이터 포인트들 간 거리가 크게 늘어나므로 데이터가 희소화(Sparse) 되기 시작함수백~수천 개 이상의 Feature로 구성된 포인트들간 거리에 기반한 머신러닝 알고리즘들이 무력화 됨또, Feature가 많을 경우, 개별 Feature간 상관관계가 높아 선형 회귀 같은 모델에선 '다중공선성 문제'로 인해 모델의 예측 성능이 저하될 가능성이 매우 높다.  차원 축소 장점학습 데이터 크기를 줄여 학습 시간을 절약할 수 있음불필요한 Feature를 줄여 모델 성능 향상에 기여할 수 있음다차원 데이터를 3차원 이하의 차원 축소를 통해 시각적으로 쉽게 데이터 패턴을 인지할 수 있음차원 축소 분류특성 선택(feature selection): 종속성이 강한 불필요한 특성은 완전..

pandas와 DataFrame

판다스란?파이썬에서 데이터 처리를 위해 존재하는 가장 인기 있는 라이브러리고수준 API 제공파이썬의 리스트, 컬렉션, 넘파이 등의 내부 데이터 외에도 CSV등의 파일을 쉽게 DataFrame으로 변경해 데이터의 가공/분석을 편리하게 수행할 수 있도록 함 핵심 객체 -> DataFrameDataFrame: Index를 key값으로 가지며  행x열 로 이뤄진 2차원 데이터를 담은 데이터 구조체, 여러개의 Series로 이뤄져있음 eg. DataFrame 생성 - 아래와 같이 딕셔너리를 넣을 수도 있고, 리스트나 NumPy array를 넣을 수도 있음dict_df = pd.DataFrame({ 'category': ['skirt', 'sweater', 'coat', 'jeans'], 'quantit..

Matplotlib 개념 및 간단 예제

Matplotlib이란?: 파이썬의 데이터 시각화 라이브러리로 다양한 종류의 시각화를 지원하며 데이터 분석과 시각화 작업에서 널리 사용된다. 주요 특징다양한 플롯 유형: 선 그래프, 막대 그래프, 산점도, 히스토그램, 파이 차트 등 여러 가지 플롯을 만들 수 있습니다.강력한 커스터마이징: 색상, 스타일, 레이블, 제목 등 그래프의 모든 요소를 세밀하게 조정할 수 있습니다.인터랙티브: Jupyter Notebook과 같은 환경에서 인터랙티브한 플롯을 만들 수 있습니다.출력 포맷: 플롯을 PNG, PDF, SVG 등 다양한 포맷으로 저장할 수 있습니다.통합: NumPy, Pandas, SciPy와 같은 다른 파이썬 라이브러리와 잘 통합됩니다.기본 함수figure() 함수의 figsize 파리미터로 그래프 ..