본문 바로가기

Python14

[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] Missing Data(NA, NaN) 결측값 처리 안녕하세요. 우주신 입니다. 데이터 분석에 있어 가장 중요한 과정은 결측값 및 특이값을 얼마나 잘 처리하는지의 유무에 달려 있다고 생각하는데요, 오늘은 pandas를 이용하여 NA, NaN 데이터를 처리하는 가장 기본적인 몇가지 방법을 포스팅 하겠습니다. df.dropna(), df.fillna() 우선, 결측값이나 특이값을 처리하는 3가지 방법이 있습니다. 1. 무시한다 2. 제거한다 3. 다른 값으로 대체한다 먼저, pandas와 numpy를 이용해 NaN 값이 포함된 데이터프레임을 만들었습니다. import pandas as pd import numpy as np df = pd.DataFrame([[1, np.nan, 2, np.nan], [3, np.nan, 4, 5], [5, 6, 7, np.n.. 2017. 12. 6.
[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) 안녕하세요. 우주신 입니다. 파이썬에서 데이터프레임을 합치는 여러가지 방법이 있지만, 오늘은 concat, append 두 가지 함수에 대해 포스팅 해보겠습니다. 두 데이터프레임을 합치고 싶은데 의도대로 합쳐지지도 않고, 계속해서 에러가 나기도 할텐데, 기본 기능부터 확실히 짚고 넘어가면 여러 방면으로 활용할 수 있을 것 입니다. pandas부터 import 하고 시작~ import pandas as pd 1. pd.concat() concat은 연결의 뜻을 가진 concatenation의 줄임말 입니다. 사용하는 방법은 아주 간단 합니다. 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.