codeit 43

DataFrame - 중복값 찾고 처리하기

df.duplicated()중복값 확인 시, 가장 먼저 나온 데이터는 중복값이 아닌 데이터로 보고 나머지값들을 중복값으로 인식한다.모든 컬럼의 값이 동일해야 '중복값'으로 본다. airbnb_df.duplicated() # 중복값 여부 확인, True면 중복값이고 False면 아님airbnb_df.duplicated().sum() # 중복된 값의 총합 계산airbnb_df[airbnb_df.duplicated(subset='id')] # 'id'가 중복된 값의 데이터 확인# 중복값을 리스트로 줄 수도 있음airbnb_df[airbnb_df.duplicated(subset=['id', 'n_review', 'price')] # subset의 3개의 값이 모두 동일하면 중복값# keep='first'가 기본..

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: 컨플릭트가 발생해서 제대로 진행되지 못한 리베이스를 계속 진행하라.

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 파리미터로 그래프 ..