본문 바로가기

Python13

[Python] 상관분석(Correlation Analysis), [산점도, 공분산, 상관계수, 검정] 안녕하세요. 우주신 입니다. 약 3년만에 포스팅을 하네요... 일을 하다보니 포스팅을 꾸준히 못 하고 있습니다..ㅠ 오늘은 블로그에서 가장 조회수가 높은 '[R] 상관분석...' 글을 Python으로 빠르게 변환 해봤습니다. 이번 포스팅과 다음 포스팅에서는 상관분석과 회귀분석에 대해 정리해보겠습니다. 우리는 종종 어떤 두 사건 간의 연관성을 분석해야 할 경우가 많습니다. 둘 또는 그 이상의 변수들이 서로 관련성을 가지고 변화할 때 그 관계를 분석해야 하는데, 가장 잘 알려진 방법 중 하나가 상관분석과 회귀분석 입니다. 예를 들어, GDP와 기대수명 간의 관계, 키와 몸무게 간의 관계를 보자면, 각각 두 변수 간의 선형적 관계를 상관(Correlation)이라고 하며, 이러한 관계에 대한 분석을 상관분석(.. 2021. 3. 5.
[Python] Merge Sort: 병합 정렬 안녕하세요. 우주신 입니다. 오늘은 병합 정렬(Merge Sort)에 대해 포스팅하겠습니다. 병합 정렬은 정렬되지 않은 전체 데이터를 하나의 단위로 분할한 후에 분할한 데이터들을 다시 병합하며 정렬하는 방식 입니다. 즉, Divide: n개의 데이터를 n/2개 데이터로 나누고 2개의 리스트에 넣습니다.Conquer: 2개의 리스트들의 데이터가 하나가 될 때까지 재귀적으로 나눕니다.Combine: 각각의 2개의 리스트를 병합 합니다. 시간 복잡도는 최악의 경우 O(nlogn)로 이전 포스팅에서 소개했던 insertion sort보다 효율적인 알고리즘 입니다. 코드를 통해 자세히 보겠습니다. 우선, 데이터를 리스트로 입력 받겠습니다.입력 받은 데이터를 띄어쓰기 기준으로 구분하여 이를 정수형으로 리스트에 저장.. 2018. 3. 30.
[Python] Insertion Sort: 삽입정렬 안녕하세요. 우주신 입니다. 오늘은 삽입 정렬(Insertion Sort)에 대해 포스팅하겠습니다. 알고리즘을 배울 때, 가장 먼저 접하게 되는 친숙한 삽입 정렬입니다.삽입 정렬은 말 그대로 데이터의 삽입을 통해 정렬을 완성하는 알고리즘 입니다.현재 위치에서, 이미 정렬된 이전 배열들의 데이터를 차례대로 비교하여 자신의 위치를 찾아 그 위치에 삽입하는 방식 입니다. 시간 복잡도는 최악의 경우 O(n^2)이고, 최선의 경우(이미 정렬되어 있는 경우)에는 O(n) 이므로 Big-O (n^2) 입니다. 5 3 4 6 1 2 5 3 4 6 1 2 3 5 4 6 1 2 3 4 5 6 1 2 3 4 5 6 1 2 1 3 4 5 6 2 1 2 3 4 5 6 파이썬 코드를 통해 자세히 알아보겠습니다. 우선, 데이터를 .. 2018. 3. 29.
[Python] matplotlib 이용하여 누적영역형차트, 원형차트 그리기 안녕하세요. 우주신 입니다. 저번 시간에 이어 matplotlib 이용하여 누적영역형차트, 원형차트 그리는 방법에 대해 포스팅 하겠습니다. 우선, 그래프를 만들 임의의 데이터를 생성하겠습니다. (정말 아무 의미 없는 값을 입력해 데이터 생성했어요;) 1. 누적영역형차트 (Stacked Area Graph) 누적영역형차트는 두 개 이상의 데이터 계열을 서로 누적하는 영역형 차트 입니다. 특히, 제품별로 매출에 기여하는 정도를 시계열로 나열하여 한 눈에 쉽게 볼 수 있어 성과 분석을 위한 기본적인 그래프 중 하나 입니다. plt.stackplot(beernum, price, amount, country)-plt.stackplot() 함수 안에 4개의 리스트인 데이터를 입력했습니다. 첫번째 데이터인 beern.. 2018. 1. 2.
[Python] matplotlib 이용하여 히스토그램, 산점도 그리기 안녕하세요. 우주신 입니다. 이번 시간에는 히스토그램과 산점도 그리는 방법에 대해 배워보겠습니다. 먼저, pandas를 이용하여 웹에서 csv 파일을 불러왔습니다. 상점 번호, 연도, 기간, p1매출액.. 등을 기준으로 데이터프레임을 만들었습니다. 이 중 p1sales의 데이터를 히스토그램과 산점도로 시각화 해보겠습니다. 1. 히스토그램 (Histogram) plt.hist(df['p1sales'])-plt.hist() 함수 안에 df의 열 'p1sales' 데이터를 넣었습니다. Y축에는 빈도수가, X축에는 매출액을 기준으로 히스토그램이 출력됐습니다. X축 매출액의 범위를 조정해보겠습니다. plt.hist(df['p1sales'], list)-list 자리에 X축 범위를 지정할 수 있습니다. list에 .. 2017. 12. 29.
[Python] matplotlib 이용하여 그래프 그리기 안녕하세요. 우주신 입니다. 이번 포스팅에서는 matplotlib 모듈과 그래프를 그리는 가장 기초적인 방법에 대해 알아보겠습니다. 데이터의 단순한 나열보다는 한 눈에 파악할 수 있는 표나 그래프가 더 가치 있다고 생각하기에,데이터의 분석만큼 중요한 부분이 시각화 입니다. 앞으로 대중적으로 쓰이는 모듈 중 하나인 matplotlib을 활용하여 다양한 그래프를 그리는 방법에 대해 끄적거려보겠습니다. 한줄 한줄 차근히 설명해보겠습니다.import matplotlib.pyplot as plt-우선 matplotlib을 import 해야하는데 pyplot을 함께 묶어준 이유는 거의 모든 시각화하는데 있어 pyplot을 이용하기 때문입니다. 흔히 plt를 약자로 사용합니다. import pandas as pd는 .. 2017. 12. 29.
[Python] 이동평균 계산 (pandas.Series.rolling) 안녕하세요. 우주신 입니다. 오늘은 알아두면 매우 유용한 함수 pandas.Series.rolling에 대해 포스팅 하겠습니다.데이터분석을 하다보면 일정 범위에서 규칙적으로 연산(예: 이동평균)을 해야할 일이 많습니다.예를 들어, 날마다 일주일 간의 주가 평균을 알고 싶을 때, 매일 일일이 다 계산하는 것은 매우 비효율적 입니다. 이 때, 유용하게 쓸 수 있는 함수가 .rolling 이라고 보시면 됩니다.예전에 이 함수를 모를 때는 for문을 이용하여 rolling 함수의 기능을 구현 하다보니 코드도 길고 실행하는 데도 시간이 꽤 걸렸던 기억이 있네요;; 우선, 이번 시간에 사용할 금융 데이터를 웹에서 불러오겠습니다.(금융 데이터 불러오기: http://ordo.tistory.com/57) 현대차 종가 .. 2017. 12. 28.
[Python] 데이터프레임 병합 (.merge) 안녕하세요. 우주신 입니다. 이번에는 pandas의 merge()를 이용해 데이터프레임끼리 병합하는 방법에 대해 알아보겠습니다. 우선, import pandas as pd를 통해 pandas를 가져왔습니다.지난 포스팅의 데이터프레임 결합에서 이용했던 데이터프레임을 그대로 쓰겠습니다. df1과 df2는 인덱스만 다를 뿐 값이 다 같고, df3는 df1과 달리 3번째 열이 'Color_Num'입니다. 1. pd.merge(데이터프레임, 데이터프레임) 인덱스만 다르고 값이 같은 df1과 df2를 병합 시켜보겠습니다. 위의 출력 결과를 보면, 인덱스와 상관 없이 병합이 되고, 같은 값들은 중복 표기가 되지 않습니다. 2. pd.merge(데이터프레임, 데이터프레임, on = ' ') 이번에는 특정 열을 지정하여.. 2017. 11. 28.
[Python] 데이터프레임 결합 (.concat, .append) 안녕하세요. 우주신 입니다. 오늘은 파이썬에서 pandas 라이브러리의 concat 함수와 append 함수를 이용하여 데이터프레임끼리 합치는 방법을 포스팅하겠습니다. 우선, import pandas as pd 를 통해 pandas를 가져왔습니다.데이터프레임 결합에 이용할 3개의 데이터프레임을 만들었습니다. df1과 df2는 인덱스만 다를 뿐 값이 다 같습니다.df3는 df1과 달리 3번째 열이 'Color_Num' 입니다. 1. pd.concat() concat는 연결의 뜻을 가진 concatenation의 줄임말 입니다.pandas의 concat을 이용해 df1, df2를 결합 했습니다. pd.concat( [데이터프레임, 데이터프레임] ) 밑의 출력된 결과를 보면 같은 열의 이름에 맞춰 세로로 결합.. 2017. 11. 27.
[Python] 데이터프레임 관련 기본 함수(shape, dtypes, axes, T, index, ix[], columns) 안녕하세요. 우주신 입니다. 오늘을 데이터프레임과 관련하여 기본 함수들에 대해 포스팅 해보겠습니다. shape, dtypes, axes, T, index, ix[], columns 우선, pandas를 활용하여 df1 데이터프레임을 만들었습니다. 1. shape: 행과 열의 개수를 튜플로 반환 형식: dataframe명.shape 3행 3열을 튜플로 반환한 것을 확인할 수 있습니다. 2. dtypes: 열을 기준으로 데이터 형태 반환 형식: dataframe명.dtypes저는 모든 데이터를 문자로 만들었기에 object가 반환 됐습니다. 3. axes: 행과 열의 이름을 리스트로 반환 형식: dataframe명.axes행의 이름이 먼저 반환되고 열의 이름이 반환된 것을 확인할 수 있습니다. 4. T: 전.. 2017. 9. 10.
[Python] 데이터프레임 만들기 (pandas 활용) 안녕하세요. 우주신 입니다. 오랜만에 블로그 글을 남깁니다. 이것저것 바빠 활동을 잘하지 못 했네요. 앞으로 더 많은 포스팅 하겠습니다. 오늘은 pandas를 활용하여 데이터프레임을 생성하는 방법을 보겠습니다. 데이터 분석을 한다면 R로 하는 경우가 많았는데, pandas가 등장한 뒤로 파이썬에서도 쉽게 데이터를 다룰 수 있게 되어 많은 사랑을 받고 있어요! 먼저, pandas 모듈을 가져오고, DataFrame 기능을 간단히 df로 정의했습니다. df(data= )의 데이터 입력 자리에 딕셔너리를 활용하여 df1 데이터프레임을 만들어봤습니다. 아주 깔끔하게 데이터프레임이 생성된 것을 확인할 수 있습니다. 자, 이제 열의 순서를 바꿔보겠습니다. 단순히, columns= 옵션을 활용하여 [] 리스트 안에 .. 2017. 9. 6.
[Python] 상속(Inheritance), 메서드 오버라이딩(Overriding) 안녕하세요. 우주신입니다. 이번 포스팅에서는 클래스의 상속(Inheritance)과 상속의 개념 중 하나인 메소드 오버라이딩(Overriding)에 대해 정리해보겠습니다. 1. 상속(Inheritance) '상속'이란 "뒤를 이음", "물려받다"라는 뜻으로, 클래스에도 이런 개념을 적용할 수 있습니다. 어떤 클래스를 만들 때 다른 클래스의 기능을 그대로 가지고 올 수 있다는 개념인데, 이 때, 물려주는 클래스를 부모클래스(Super class), 물려받는 클래스를 자식클래스(Sub class)라고 합니다. 이러한 상속을 이용하면 중복코드가 작성되는 것을 방지할 수 있으며, 코드의 유지보수가 아주 쉬워집니다. 간단한 계산기를 만들어보며 상속에 대해 설명해보겠습니다.Calculate라는 클래스를 만든 후, .. 2017. 4. 5.