전체 글

.merge(left= , right= , on=' '(left_on=' ', right_on=' '), how=' ') merge가 SQL의 join과 같은 의미라고 책에서 설명한다. merge함수의 매개변수를 살펴보면, how= inner join (내부 병합, 교집합 A∩B) 각각에 모두 존재하는 key값의 행끼리 병합 full join (완전 병합, 합집합 A∪B) 동일한 key값을 가진 데이터는 통합하고, 어떤 데이터에 없는 key값은 다른 데이터에 그 key값이 있으면 남긴다. left join (왼쪽 병합, A) 왼쪽 테이블의 key값을 기준으로 병합 right join (오른쪽 병합, B) 오른쪽 테이블의 key값을 기준으로 병합 on='합칠때 기준으로할 열' , 합칠 두 데이터에 공통으로..
· pandas
groupby함수는 쉽게 말하면 그룹별 집계로, 엑셀의 피벗테이블과 비슷한 기능이다. 다음의 3단계를 거친다. 분할(split): 같은 key값을 가진 데이터들끼리 묶는다. 이때 key값 = 기준 열에서 항목 값 적용(apply): 분할로 나누어진 각 데이터 블록마다 다양한 연산 적용하며, 연산 함수를 직접 만들수 있다. 결합(combine): 적용된 각 블록들을 합침 --> 어떤 key값을 기준으로 통합된 통계 데이터 추출 .groupby("묶을 기준 열1","묶을 기준 열2",...)["연산하는 열"].연산함수(level= ) 이때 레벨별로 별도의 연산 함수 지정가능하다 index는 반환할 수 없다. 결과는 Series객체로 반환되며, DataFrame객체로 변형하려면 reset_index함수를 적용..
· pandas
pandas에는 다양한 데이터 추출 및 삭제하는 함수와 기법이 존재한다. 설명에 사용할 데이터는 아래와 같다. import pandas as pd raw_data = {'first_name':['Jason', 'Molly', 'Tina', 'Jake','Amy', 'Coner'], 'last_name':['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze', 'Garden'], 'age':[42,52,36,24,73, 28], 'city':['San Francisco', 'Baltimore', 'Miami', 'Douglas', 'Boston', 'Califonia']} df = pd.DataFrame(raw_data) df > .head(n): 처음 n개의 데이터 추출, ..
· pandas
DataFrame객체는 다음과 같은 특징을 가진다. numpy배열과 같으나 각 열은 다른 데이터 타입을 가질수 있음 Series는 index기준으로 데이터 생성했다면, DataFrame은 열을 기준으로 데이터 생성 2차원 행렬기반으로 만들어지기 때문에 행과 열 인덱스를 사용하여 하나의 데이터에 접근 가능 열을 추가/삭제하여 크기 변화 가능 아래 DataFrame 데이터를 보면서 무슨 말인지 알아보자 data_url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data' df_data = pd.read_csv(data_url, sep='\s+', header=None) # csv데이터 로드 df = pd.DataF..
· pandas
pandas 객체 DataFrame: 데이터 테이블 전체를 다루는 객체, 2차원 자료구조 Series: 각각의 열 데이터를 다루는 객체, 1차원 자료구조 Series객체는 feature vector와 같은 개념으로 사용하고 일반적으로 하나의 feature 데이터를 포함하는 형태로 다루어진다. 매개변수 data: 값 저장 index: 숫자, 문자, 0부터 시작하지 않는 숫자, 랜덤순서인 숫자 모두 가능. 데이터를 다룰때 데이터의 id값을 인덱스로 삼아 다뤄야할때가 있기 때문. Series객체에서는 인덱스 값의 중복 허용 dtype: numpy의 데이터 타입과 같은데, pandas는 numpy의 wrapper라이브러리이기 때문이다. pandas의 모든 객체는 index값을 기준으로 생성되는데 이때 index..
· numpy
numpy배열의 비교 연산은 항상 bool type 배열을 결과로 반환한다. broadcasting 비교 연산 배열 vs 스칼라값 x = np.array([4,3,2,6,5,8]) x>3 >array([ True, False, False, True, True, True]) 배열 x의 각 값마다 스칼라값 3과 비교하여 그 결과인 bool type 값들의 배열을 반환한다. 배열의 요소별 비교 연산 y = np.arange(1,7) x>y >array([ True, True, False, True, False, True]) 배열 x와 y의 index가 같은 값들끼리 비교한다. 이때 비교하는 배열들의 크기가 같지 않으면 ValueError가 발생한다. all & any all( ): 모든 값이 참이면 true,..
· numpy
이전의 '배열의 연산'은 배열 내부의 값들을 계산하는 것을 다루었다. 이번에 다룰건 '배열끼리 연산'이다. 배열끼리의 사칙연산 같은 구조의 배열끼리는 요소별 연산을 수행한다. 예시를 보면 다음과 같다. x = np.arange(1,13).reshape(-1,3) x >array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12]]) print(x+x) print(x-x) print(x * x) print(x / x) print(x ** x) # 거듭제곱 >[[ 2 4 6] [ 8 10 12] [14 16 18] [20 22 24]] [[0 0 0] [0 0 0] [0 0 0] [0 0 0]] [[ 1 4 9] [ 16 25 36] [ 49 64 81] [100 121..
· numpy
vstack(()): 수직으로 배열 붙임(vertical) hstack(()): 수평으로 배열 붙임(horizontal) 기본적으로 numpy는 열벡터를 표현할수 없기 때문에 1차원 행 배열로 표현된 벡터를 열배열 형태로 hstack할때는 reshape해줘야한다. 다음과 같이 벡터를 생성하고 vstack하면 a1 = np.array([1,2,3]) a2 = np.array([4,5,6]) np.vstack((a1,a2)) >array([[1, 2, 3], [4, 5, 6]]) 이렇게 수직으로 배열이 합쳐진다. 그리고 hstack을 하면 두 배열이 각각 수평으로 나열되는 것이 아니라 완전히 하나의 배열로 합쳐진다. np.hstack((a1, a2)) >array([1, 2, 3, 4, 5, 6]) a1, ..
· numpy
배열의 연산에는 sum(∑), mean(평균), std(표준편차), sqrt(√), square(모든 값²) 등이 있다. 각각의 연산은 parameter인 axis를 이용하여 계산할 수 있는데, axis=0 이면 행 끼리 계산하고 axis=1 이면 열 끼리 계산한다. 예를 들어보면 import numpy as np test_arr = np.arange(1,13).reshape(4,-1) test_arr >array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12]]) test_arr.sum(axis=0) >array([22, 26, 30]) 위와 같이 axis=0이면 행끼리 더해서 결과 값의 개수 = 기존 배열 열의 개수와 같다. axis=0은 행 방향, axis=..
· numpy
identity(n=행렬크기, dtype=데이터타입): 단위행렬 생성 m_xx = np.arange(12).reshape(3,-1) m_xx >array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) np.identity(5,float) >array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]]) eye(N=행 개수, M=열 개수, k=1시작 위치): k기준 대각방향 값=1인 행렬 생성 np.eye(5,3,1) >array([[0., 1., 0.], [0., 0., 1.], [0., 0., 0.], [0., 0.,..
siwoli
siwoli