전체 글287

list comprehension Q. list comprehension? A. list 안에 for문(+if문)을 포함시켜 편리 & 직관적인 프로그래밍 짜기 [f(x) for x in nums] → filter condition 추가도 가능! (if문) [f(x) for x in nums if g(x)] → ex) list안에 있는 element들을 한 줄만으로(👍) element 제곱형태로 표현 가능! nums = [1,2,3,4] result = [x*x for x in nums] #result == [1,4,9,16] nums = [1,2,3,4] result = [x*x for x in nums if x%2 == 0] #result == [4,16] (+) Map + filter → ex) nums = [1,2,3,4] list.. Python/Pandas&Numpy 2022. 3. 23.
pandas functions - cut, qcut ♠'cut' documentation https://pandas.pydata.org/docs/reference/api/pandas.cut.html ♠'qcut' documentation https://pandas.pydata.org/docs/reference/api/pandas.qcut.html 1. cut ✂️ → bin values into discrete intervals. Use cut when you need to segment and sort data values into bins. This function is also useful for going from a continuous variable to a categorical variable. For example, cut could con.. Python/Pandas&Numpy 2022. 3. 23.
Q) NaN - dataframe 분포 그림으로 확인할 방법? A) missingno를 import하면 됩니다! → missingno를 import 합니다 import missingno as msno → 시각화로 나타나기 위해 matplotlib를 준비. %matplotlib inline → matrix method) NaN 분포를 알고 싶은 dataframe 이름을 인자로 넣습니다. (matrix에 여러 인자를 넣어 graphical하게 다양한 형태로 표현 가능) msno.matrix(df_name) → graph 해석) NaN이 없으면 검정색, 존재하면 하얀 선으로 표시됩니다. (즉 하얀 공간이 많을수록 NaN이 많다고 보시면 되겠습니다.) ex) - NaN값이 하나도 없습니다. 검정색이 빽빽히 칠해진 직사각형들의 모임입니다. - - Gender column에 .. Failures & Issues/problem-solution 2022. 3. 23.
pandas Tricks_01 👉🏻 'Reverse (row/column) Order' (Kevin by DataSchool) Q) 데이터프레임이 주어졌다. 근데 내가 원하는 데이터는 행 기준 아래 부분. 데이터 용량이 워낙 커서 데이터 훑기도 힘들다면 A) '행과 열 순서 바꾸기' 👉🏻 .loc[::-1] & .loc[:,::-1] 사용하기 (tail()도 있지만, 데이터프레임 자체의 행/열 구성을 바꿔주지는 않는다!) 1> seaborn 내장 iris dataset 가져오자. import seaborn as sns df_iris = sns.load_dataset('iris') df_iris.head() 2> loc[::-1] 사용. df_iris.loc[::-1].head() 3> 마음에 드는데 index가 걸린다. 다시 index를 reset 해보자(즉, index를 0부터 맞추잔 소리) (reset_index) → 원래 .. Python/Pandas&Numpy 2022. 3. 23.
data 분석 개요 & (1) 문제 정의, (2) 수집 1. 데이터 분석 및 개요 = 저장된 데이터에서 의미 있는 정보를 얻기 위한 과정 Q) 데이터 분석의 목표? = 데이터 분석을 통해 데이터를 활용함으로써 경제적 가치를 창출하는 것! [1] 데이터 활용 사례 * 미국 T-mobile 사 - 미국 내 휴대폰 통신 사업자를 대상으로 통화패턴을 분석하여 이탈고객을 방지한 사례 * sensor 데이터 관리 사례 - volvo 신차의 운행 과정에서 발생하는 각종 sensor 데이터 활용 : 해당 데이터를 활용함으로서 제품개발에서 찾기 어려운 결함 & 고객의 요구를 분석 - 과거에는 50만대의 차량이 팔린 후 알 수 있던 결함을 단지 1,000대 판매 시점에 바로 포착 - 결국 대규모 리콜 상태를 방지함으로서 비용을 절감할 수 있었다. [2] 데이터 분석의 역할 *.. Computer Science/Basics 2022. 3. 23.
FE - Feature Engineering 1. Concepts * In real world, data is really messy - we need to clean the data * FE = a process of extracting useful features from raw data using math, statistics and domain knowledge - 즉, 도메인 지식과 창의성을 바탕으로 dataset에 존재하는 feature들을 재조합하여 새로운 feature를 만드는 과정이다 - 기존 feature끼리 재조합하여 새로운 열을 만들어내거나, 기존 feature에 조건식을 걸어 새로운 열을 만들어내기, 기존 열의 dtype 변환 - 분석의 결과, 모델링의 아웃풋 향상을 위해서 더 의미있는 패턴을 발견하기 위해 사용 - clea.. Computer Science/Concepts 2022. 3. 22.
EDA - Exploratory Data Analysis 1. concepts & goals → 탐색적 데이터 분석 - 수집한 데이터를 본격적으로 분석하기 전에 자료를 직관적으로 바라보는 과정이 필요한데, 이때 EDA를 사용한다 - 데이터 분석의 한 종류로 복잡한 모델링이나 수식을 쓰지 않고 데이터를 말 그대로 탐색하는 것이다. - it allows you to examine the data as they are without making any assumptions..! - 탐색! 즉 결측치, 이상치, dtypes, shape, 새로운 data 생성(기존 data 이용), fillna() 모두 포괄하는 개념이라 할 수 있다 - 시각화 같은 도구를 통해서 패턴을 발견 & 데이터의 특이성 확인 & 통계와 그래픽(혹은 시각화)을 통해 가설을 검정 * [EDA me.. Computer Science/Concepts 2022. 3. 22.
(예제) - 한국 도쿄올림픽 medal count 가져오기 - ! -- 저번 포스팅에서는 HTML 형식의 파일이 존재한다면 open()을 이용해서 가져오고 BeautifulSoup parsing을 통해 직접 데이터를 검색했던 적이 있었다. 이번에는 직접 web browser url을 이용하여 web page를 가져오고 원하는 data를 찾아 출력하는 실습을 해보겠다 -- ! (하단 HTML file - BeautifulSoup 검색 포스팅) HTML 문서를 BeautifulSoup으로 검색하기 (+re module) ! -- web browser에서 직접적인 url을 가져와 parsing하는 web crawling은 아니지만 web에 존재하는(또는 컴퓨터에 자체적으로 존재하는) HTML file 내용을 가져와 나타내는 방법을 알아본다 -- ! ** Beautiful.. Python/Web Crawling+Scraping 2022. 3. 22.
HTML 문서를 BeautifulSoup으로 검색하기 (+re module) ! -- web browser에서 직접적인 url을 가져와 parsing하는 web crawling은 아니지만 web에 존재하는(또는 컴퓨터에 자체적으로 존재하는) HTML file 내용을 가져와 나타내는 방법을 알아본다 -- ! ** BeautifulSoup library tolerates highly flawed HTML & still lets you easily extract the data you need (repairs & parses HTML to make it easier for a program to understand) 1. import & parsing 1> BeautifulSoup import 2> open()의 read() method를 사용하여 sample.html file을 받는.. Python/Web Crawling+Scraping 2022. 3. 21.
Crawling/Scraping에 필요한 HTML5 & CSS3 (간단 정리) 1. HTML5 [1] 개요 및 개념 * 표준 web이라고 부르는 HTML5는 주로 내용을 표현하는 것에 중점을 둠 * HTML 요소를 통해 웹 페이지 구조와 의미를 정의한다 * 시작 태그와 끝 태그를 정의하고, 그 사이 컨텐츠를 만들기 위해 여러 태그를 활용한다 * 태그는 여러 종류로 나뉜다 (아래 외에도 다양한 종류의 tag 존재) → h1 tag: heading → p tag: paragraph - 문단 만들기 → li tag: list - 리스트 목록 만들기 → strong tag: 강조하기 → img tag: 이미지 표현 (src 속성을 통해 image source의 url을 기술한다) → a tag: 링크 정의 (href 속성을 통해 link의 대상을 정의한다) 2. CSS3(Cascading.. Python/Web Crawling+Scraping 2022. 3. 21.
Pandas 1. 개념 * python library로 구조화된 데이터를 효과적으로 처리하고 저장한다 - array 계산에 특화된 NumPy를 기반으로 설계한다 - 2차원 데이터 외 대용량 데이터 처리에 효과적임 - 데이터 가공, 변환, 정제, 수집, 전처리, 통계, 시각화 작업 모두 가능 -1- 데이터 수집) 텍스트, CSV, Excel, HTML(BeautifulSoup), XML, Hdfs, db, JSON 여러 형태를 pandas는 읽을 수 있다 -2- 데이터 전처리) 전처리 과정을 반드시 거쳐야 함 - 분석가능한 형태로 변형 (null 처리, 이상치, 정규화 등등) -3- 데이터 분석) 통계 & 시각화(matplotlib, seaborn) -4- 예측) pandas에서는 지원하지 않음 - sklearn, T.. Python/Pandas&Numpy 2022. 3. 21.
NumPy intro. + fundamentals 1/2 1. 개념 * NumPy = Numerical Python - Python에서 대규모 다차원 배열을 다룰 수 있게 도와주는 library * 데이터의 대부분은 숫자 배열로 볼 수 있기에 NumPy는 꼭 필요 - 이미지나 소리 등 실생활 대부분이 숫자로 표현됨 * NumPy는 반복문 없이 배열 처리가 가능하며, python list에 비해 빠른 연산을 지원하고 메모리를 효율적으로 사용할 수 있다 * list) list_arr = list(range(5)) print(list_arr) #[0,1,2,3,4] - comma로 구분 print(type(list_arr)) # * numpy) - import 사용 - numpy 배열 생성 및 출력 형태 확인해 보면 ndarray가 생성됨을 확인할 수 있다. - n.. Python/Pandas&Numpy 2022. 3. 20.
list comprehension Q. list comprehension? A. list 안에 for문(+if문)을 포함시켜 편리 & 직관적인 프로그래밍 짜기 [f(x) for x in nums] → filter condition 추가도 가능! (if문) [f(x) for x in nums if g(x)] → ex) list안에 있는 element들을 한 줄만으로(👍) element 제곱형태로 표현 가능! nums = [1,2,3,4] result = [x*x for x in nums] #result == [1,4,9,16] nums = [1,2,3,4] result = [x*x for x in nums if x%2 == 0] #result == [4,16] (+) Map + filter → ex) nums = [1,2,3,4] list.. Python/Fundamentals 2022. 3. 20.
Module & Package 1. Module [1] 필요성 및 정의 * 코드가 당연히 길어지는 상황에서 모든 함수, 변수를 구현하는 것은 불가능하다. 따라서 누군가 만들어놓은 함수, 변수 등을 활용해야 한다 * 모듈 = 특정 목적을 가진 함수, 자료의 모임 - 모듈 자체가 python file일 수 있다. 외부 python file을 가져오기 위해 'import 파일명' 사용 [2] 모듈 사용하기 * import(불러오다) keyword를 이용해서 모듈을 사용한다 import random # call random module * module 속 사용하려는 함수/변수의 사용법을 미리 확인해야 한다 > docu() 훑어보기 기본 Python/Fundamentals 2022. 3. 19.
python intro. (03) ** 파이썬 기초 과정 intro. (01) & (02) ** https://dataworld.tistory.com/58 python intro. (01) 1. python 활용을 위한 기초적인 재료 [1] print() - ,(콤마)를 이용해서 여러 자료를 출력할 수 있다. (, 사이 띄어쓰기) - print() 여러 번 사용: print() 사이 enter키의 사용으로 여러 줄에 걸쳐 출력이 일어 dataworld.tistory.com https://dataworld.tistory.com/70 python intro. (02) * python = interpreter 방식의 언어 ≫ interpreter 방식의 언어란, 몇 줄의 code를 입력 후 enter를 치면 해당 부분이 바로 실행되고 정상처리.. Python/Fundamentals 2022. 3. 19.
python intro. (02) * python = interpreter 방식의 언어 ≫ interpreter 방식의 언어란, 몇 줄의 code를 입력 후 enter를 치면 해당 부분이 바로 실행되고 정상처리/에러 여부를 알 수 있는 대화형 프로그래밍 언어이다 ≫ 그 반대로 compiler 방식의 언어가 있는데, 이는 코딩을 모두 마치고 컴퓨터가 알아들을 수 있는 기계어 수준으로 한 번에 번역해서 실행해주는 언어이다 ** 데이터 과학을 주 대상 업무로 사용한다면 한 줄 입력하고 실행하는 interpreter 방식이 훨씬 유리하고 효과적이다! * 기초 문법 ** 랜덤으로 내가 몰랐던 부분 계속 업데이트하는 방식으로 포스팅 정리! ≫ None이라는 값 존재 x = None print(x) #None ≫ 세미콜론(;)은 한 줄의 코드를 나눠.. Python/Fundamentals 2022. 3. 18.
python intro. (01) 1. python 활용을 위한 기초적인 재료 [1] print() - ,(콤마)를 이용해서 여러 자료를 출력할 수 있다. (, 사이 띄어쓰기) - print() 여러 번 사용: print() 사이 enter키의 사용으로 여러 줄에 걸쳐 출력이 일어난다 print("hello!") print(3, "hello!") + sep - print문 사이 출력할 여러 형태들을 (,로 구분) 그 사이사이 sep 구분자를 집어넣어 출력한다는 뜻 - 단, sep = \n일 경우 한 줄 띄워서 출력된다 (\t는 탭 기준 띄어서 출력) print(1,2,3, sep=',') #1,2,3 print(1920,1080, sep='X') #1920X1080 print(26, 35, 55, sep='\n') #26 #35 #55 .. Python/Fundamentals 2022. 3. 18.