본문 바로가기

분류 전체보기

(216)
컬럼 결합 / 삭제 / 정리하기 # 데이터프레임 결합하기 데이터프레임 = pd.concat([데이터프레임1, 데이터프레임2], axis='columns') # 컬럼 삭제 데이터프레임 = 데이터프레임.drop('컬럼', axis=1) # 컬럼이름 정리하기 데이터프레임.columns = ['컬럼1', '컬럼2', '컬럼3'] # 인덱스 값을 기준으로 정렬 데이터프레임.sort_index() # 데이터 값을 기준으로 정렬 데이터프레임.sort_values() # 내림차순은 ascending=False # 컬럼 목록 가져오기 list(데이터프레임.columns)
수치형 데이터, 범주형 데이터 변환 1. 수치형 데이터 → 범주형 데이터 # Titanic data 불러오기 titanic = pd.read_csv('input/train.csv') titanic['Age_cut'] = 0 # 0~16 / 16~32 / 32~48 / 48~64 / 64~80 구간으로 나누고 새 컬럼을 'A', 'B', 'C', 'D', 'E' 컬럼으로 만들기 titanic['Age_cut'] = pd.cut(titanic.Age, bins=[0, 16, 32, 48, 64, 80], labels=['A', 'B', 'C', 'D', 'E']) # 구분 별 시각화하여 개수 확인하기 titanic.Age_cut.value_counts().to_frame().style.background_gradient(cmap='summer..
데이터프레임 컬럼이름 변경하기 # 값 내용과 개수 변경 가능 # 데이터프레임 생성 데이터프레임 = pd.DataFrame({'컬럼1':[값1, 값2], '컬럼2':[값3, 값4]}) # 컬럼 이름 변경 데이터프레임.columns = ['값1', '값2'] # 특정 문자 변경하기 데이터프레임.columns = 데이터프레임.columns.str.replace('문자1', '문자2') # 접두문자 추가하기 데이터프레임.add_prefix('문자1') # 접미문자 추가하기 데이터프레임.add_suffix('문자2') # 컬럼 확인하기 데이터프레임.columns
특정 value 처리하기 위치 잘라오기 # Integer type으로 잘라오기 데이터프레임.iloc[행시작순서번호:행끝순서번호, 열시작순서번호:열끝순서번호] # 인덱스 칸을 비우면 끝 인덱스를 의미함 # 문자 type으로 잘라오기 데이터프레임.loc['행시작인덱스이름':'행끝인덱스이름', '열시작컬럼이름':'열끝컬럼이름'] DataFrame[컬럼명]으로 활용 데이터프레임[컬럼] = [값1, 값2, 값3, 값4] 지정된 인덱스 삭제 # 지정한 행 인덱스 번호로 삭제 데이터프레임.drop([행인덱스번호], inplace=True) # 지정한 열 컬럼이름으로 삭제 데이터프레임.drop([컬럼이름], axis=1) 중복되지 않는 값 확인 # 컬럼을 시리즈로 불러오기 시리즈 = 데이터프레임.컬럼이름 시리즈.unique() 지정 값('A'..
데이터프레임 생성 # 컬럼 이름, 값을 직접 입력하여 DataFrame 생성 데이터프레임 = pd.DataFrame({'컬럼1':[값1, 값2], '컬럼2':[값1, 값2]}) # 랜덤 함수를 활용하여 DataFrame 생성 데이터프레임 = pd.DataFrame(np.random.rand(행길이,열길이)) # 컬럼 이름 설정하기 데이터프레임 = pd.DataFrame(np.random.rand(행길이, 열길이), columns=['컬럼1', '컬럼2']) # csv파일 불러오기 # 인덱스 설정은 파일을 읽어올 때만 가능 데이터프레임 = pd.read_csv("파일이름.csv", index_col="인덱스로사용되는컬럼", encoding="euc-kr") # 데이터프레임이 생성된 상태에서 인덱스 설정하기 데이터프레임 = ..
결측치 처리하기 EDA 과정에서 수행하기 좋은 결측치 시각화 Seaborn 결측치 시각화 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # seaborn은 matplotlib과 세트 # heatmap 결측치 시각화 %matplotlib inline sns.heatmap(데이터프레임.isnull(), cbar=False) 결측치 처리하기 10% 미만 : 삭제 또는 대치 10 ~ 20% : Hot deck 또는 Regression 또는 Model based imputation 20 ~ 50% : Regression 또는 Model based imputation 50% 이상 : 해당 변수(컬럼) 제거 1. ..
데이터 분석 순서 1. 문제 정의 (Problem identification) - Business 목적 정의 (수익 고려) - 현재 솔루션의 구성 파악 - 지도(분류, 회귀), 비지도, 강화 선택 2. 데이터수집 (Collecting data sets) - Database - File(CSV, XML, JSON) - Web crwaling - IoT sensor data - Survey - 파이썬 패키지 : BeautifulSoup , Selenium, PyMySQL , PyMongo etc. 3. 데이터 전처리 (Preprocessing) - 결측치 처리 : 데이터 삭제, 다른 값으로 대체(최대값, 최소값, 중앙값, 예측모델 활용한 값) - 이상치 처리 : 입력오류(데이터 삭제, 다른 값으로 대체), 자연발생(featu..
프로젝트, 다시 프로젝트 국비 지원 학원에서 프로그래밍을 배운 지 2개월의 시간이 흘렀다. 1차 프로젝트를 무사히 마치고 어느새 2월이 다가왔다. 사실, 나는 1차 프로젝트부터 팀장 역할을 맡아 주도적으로 프로젝트를 이끌고 싶었다. 하지만 아쉽게도 1차에서는 그 역할을 맡지 못했다. 그 이유는 학원의 연구원분들이 보시기에 내가 주변 사람들과 활발하게 이야기하기보다 스스로 공부하는 시간을 많이 가졌기 때문이라 생각했다. 나는 꽤나 천천히 사람을 사귀어 가는 편이라고 다시금 느꼈다. 그리하여 마음을 가다듬고 1차 프로젝트(Cafe POS 프로그램)에서는 적극적으로 참여하는 팀원으로써 다분히 노력했다. 프로젝트 발표까지 마치고, 시상 결과로 2등을 하여 우수상을 받게 되었다. 매일 저녁까지 남아, 기능 구현과 에러 수정의 반복을 버텨..