Data Engineering/데이터 분석 7

konlpy를 이용해 형태소 추출하기

이번 글에서는 konlpy의 Okt tagger를 이용하여 형태소를 추출해보겠습니다. konlpy를 사용하기 위해서는 별도의 설치 과정이 필요합니다. 설치 과정은 konlpy 공식 문서(https://konlpy-ko.readthedocs.io/ko/v0.4.3/install/)에 자세히 나와있습니다. konlpy를 사용하기 위해서는 분석에 사용될 데이터가 필요합니다. 경북대학교 컴퓨터학부 공지사항의 제목 데이터를 스크래핑하여 분석에 사용하겠습니다. # 경북대학교 컴퓨터학부 공지사항 제목 스크래핑 import requests from bs4 import BeautifulSoup if __name__ == "__main__": # requests는 특정 URL로부터 HTML 문서를 가져오는 작업을 수행합니..

T-test (T검정)

정의 - 두 집단 간의 평균을 비교하는 통계적 검정 방법입니다. - 단순히 차이의 존재 여부를 떠나 그 정도의 통계적 유의미성까지 검정하는 방법입니다. - 모집단의 평균 등 실제 정보를 모를 때 현재의 데이터만으로 두 집단의 차이에 대해 검정할 수 있는 방법입니다. - 두 집단의 데이터 개수가 비슷하면서 두 데이터가 정규 분포를 보이는 경우에 신뢰도가 높은 검정 방식입니다. T-test 정의를 보고 궁금한 점이 너무 많았습니다. '왜 평균을 비교할까? 통계적 유의미성은 무슨 뜻일까? 현재의 데이터만으로 의미 있는 결과를 도출할 수 있을까? 정규 분포를 보이면 왜 신뢰도가 높을까?' 궁금한 점을 하나씩 해결해 보록 하겠습니다. 왜 평균을 비교할까? 평균을 비교하는 이유는 단순했습니다. 평균은 한 집단을 대..

상관 분석

정의 연속 변수로 측정된 두 변수 간의 선형적 관계를 상관 계수로 표현하는 것입니다. 두 변수 간의 연관된 정도를 나타낼 뿐 인과관계를 설명하는 것은 아닙니다. 순서 선형 관계를 갖는지 파악합니다. 선형 관계를 갖는다면 방향성을 파악합니다. 관계의 크기를 파악합니다. 1. 선형 관계 파악 선형 관계는 산점도를 통해 쉽게 파악할 수 있으며 아래는 iris 데이터의 산점도 그래프입니다. import matplotlib.pyplot as plt import seaborn as sns plt.rcParams['figure.figsize'] = [10, 8] iris = sns.load_dataset('iris') plt.plot('petal_length', 'petal_width', data=iris, line..

외부 파일 읽어오기 - 2 (Excel, JSON)

이번 글에서는 Excel과 JSON 파일을 읽어오는 방법을 알아보고자 한다. Excel과 JSON 파일은 앞에서 살펴본 CSV와 읽어오는 방법이 거의 비슷하다. Excel 파일 읽어오기 Excel 파일의 행과 열은 데이터프레임의 행, 열로 일대일 대응된다. read_excel() 함수의 사용법은 앞에서 살펴본 read_csv() 함수와 거의 비슷하다. header, index_col 등 대부분의 옵션을 그대로 사용할 수 있다. Excel 파일 -> 데이터프레임: pandas.read.excel("파일 경로(이름)") 다음의 Excel 파일은 남북한의 발전량을 정리한 통계자료이다. header 옵션을 달리한 두 가지 df1, df2를 출력하는 코드입니다. import pandas as pd file_pat..

외부 파일 읽어오기- 1 (CSV)

이번 글에서는 CSV파일을 읽어오는 방법을 알아보고자 한다. CSV(comma separated values) 파일은 데이터 값을 쉼표(,)로 구분하는 파일이다. 쉼표(,)로 열을 구분하고 줄바꿈으로 행을 구분한다. 판다스 read_csv() 함수에 확장자(.csv)를 포함하여 파일 경로(파일명)를 입력하면 CSV 파일을 읽어와서 데이터프레임으로 변환한다. CSV 파일 -> 데이터프레임: pandas.read_csv("파일 경로(이름)") CSV 파일을 읽어올 때 추가적으로 행과 열 이름값 설정을 할 수 있다. header는 열 이름으로 사용할 행을 지정하는 옵션이다. pandas.read_csv("파일 경로(이름)", header=?)에서 ?에 1을 넣으면 1행을 열 이름으로 지정한다. 기본값은 0이며..

데이터프레임(Data Frame) 연산

이번 글에서는 데이터프레임 연산에 대해서 알아보고자 한다. 데이터프레임은 여러 시리즈가 모인 것이므로 시리즈 연산을 확장하는 개념으로 이해하는 것이 좋다. 행/열 인덱스를 기준으로 정렬하고 일대일 대응되는 원소끼리 연산을 처리한다. 데이터프레임 연산은 크게 2가지가 존재한다. 1. 데이터프레임 vs 숫자 2. 데이터프레임 vs 데이터프레임 데이터프레임 vs 숫자 데이터프레임과 숫자 연산: DataFrame 객체 + 연산자(+, -, *, /) + 숫자 시리즈 vs 숫자 연산과 똑같다. 데이터프레임에 어떤 숫자를 더하면 모든 원소에 숫자를 더한다. 덧셈, 뺄셈, 곱셈, 나눗셈 모두 가능하며 기존 데이터프레임의 형태를 그대로 유지한 채 원소 값만 새로운 계산 값으로 바뀐다. 새로운 데이터프레임 객체로 반환되..

시리즈(Series) 연산

이번 글에서는 시리즈 vs 숫자, 시리즈 vs 시리즈 연산을 정리하고자 한다. 판다스 객체의 산술연산은 내부적으로 3단계 프로세스를 거친다. 1. 행/열 인덱스를 기준으로 모든 원소를 정렬한다. 2. 동일한 위치에 있는 원소끼리 일대일로 대응시킨다. 3. 일대일 대응이 되는 원소끼리 연산을 처리한다. (대응되는 원소가 없으면 NaN으로 처리한다) 시리즈 vs 숫자 시리즈와 숫자 연산: Series 객체 + 연산자(+, -, *, /) + 숫자 시리즈 객체에 어떤 숫자를 더하면 시리즈의 개별 원소에 각각 숫자를 더하고 계산한 결과를 시리즈 객체로 반환한다. 덧셈, 뺄셈, 곱셈, 나눗셈 모두 가능하며 아래 예제는 시리즈 객체의 각 원소를 100으로 나누는 과정이다. import pandas as pd stu..