python 20

[python] matplotlib 한글 폰트 적용하기

폰트 적용 코드 일반적으로 matplotlib 에서 한글 폰트를 적용하기 위해서 아래의 코드를 사용한다. import matplotlib.pyplot as plt # 폰트 파일 경로 font_path = '/Library/Fonts/YourFont.ttf' font_name = plt.matplotlib.font_manager.FontProperties(fname=font_path).get_name() plt.rcParams['font.family'] = font_name # rc('font', family=font_name) 만약 맥에 설치해둔 특정 OTF 폰트를 사용하고 싶으면 font_path 에 otf 폰트 파일 경로를 넣어준다. import matplotlib.pyplot as plt # 폰트 ..

[Python] 연습 2023.04.30

[python] 한국어 띄어쓰기 처리

한국어 문장을 처리할 때, 문장 내 띄어쓰기에도 주의해야한다. 띄어쓰기가 어디에 되어있는지에 따라 다른 의미로 해석될 가능성이 존재하기 때문이다. 아래의 예시를 보자. 1) 엄마가 회사 줬어 2) 엄마가 회 사줬어 두 문장의 의미가 띄어쓰기에 따라 완전히 달라진다는 것을 확인할 수 있다. 이렇기 때문에 텍스트 데이터를 분석할 때 띄어쓰기가 제대로 되어있도록 교정해주는 작업이 필요하다. PyKoSpacing 패키지 띄어쓰기가 되어있지 않은 문장을 띄어쓰기 처리를 해주는 패키지고 PyKoSpacing 이 있다. PyKoSpacing is based on Deep Learning model trained from large corpus(more than 100 million NEWS articles from ..

[Python] 연습 2022.11.13

[python] 리스트 형태의 값을 분리하여 각 하나의 값으로 표현하기

제목만 보면 어떤 말인지 이해하기 어려울 수 있으나, 아래의 예시 데이터처럼 값에 리스트가 들어가 있는 경우, 각 리스트 내 요소를 전개하여 따로 레코드를 생성해 주는 방법에 대한 것입니다. 이럴 때는 pandas 의 explode() 함수를 사용해주면 됩니다. ( pandas explode document 링크 ) 1. 예시 데이터 생성 import pandas as pd data = [[3, 1, ['가', '나', '다']], [4, 0, ['라', '마', '바']], [5, 1, ['아', '자', '차']]] col_names = ['x1', 'x2', 'x3'] df = pd.DataFrame(data=data, columns=col_names) df 2. explode 사용 'x3'에 리스..

[Python] 연습 2022.11.12

[python] json 파일 data frame 으로 읽기

1. 간단한 json 파일 [ { "id": "A001", "city": "Tokyo", "country": "Japan", }, { "id": "B012", "city": "Jerusalem", "country": "Isreal", }, { "id": "C123", "city": "Busan", "country": "South Korea", } ] 위와 같은 json 파일을 pandas 로 읽어오려면, 아래와 같이 코드를 작성할 수 있다. import pandas as pd df = pd.read_json('./data/simple.json') 2. json 파일 내부 요소를 불러오기 ( nest list 형태 ) 만약에 아래와 같은 구조를 보이는 json 파일이라면, 위에서처럼 단순히 read_jso..

[Python] 연습 2022.11.11

[python] OneHotEncoding(원핫인코딩) using pandas, scikit learn

1. 예시 데이터와 목표 데이터 - 먼저 좌측의 X1, X2, X3 처럼 categorical variables 를 원핫인코딩을 통해 우측의 형태처럼 변경시키고자 한다. - 이때는 pandas의 get_dummies() 혹은 scikit learn의 OneHotEncoder 를 사용할 수 있다. 2. pandas → get_dummies() - 공식 레퍼런스 페이지: https://pandas.pydata.org/docs/reference/api/pandas.get_dummies.html - get_dummies() 함수를 사용하는 법은 굉장히 쉽다. 간단하게 말하면 일단 object data type 인 컬럼을 확인하고, 그 컬럼들만 변경해준다. 아래의 과정을 참고하자. # object 컬럼 확인 df..

[Python] 연습 2022.10.23

Python을 활용한 AI 모델링 - 전처리 파트

필요 라이브러리 임포트 및 파일 읽어오기라이브러리를 alias로 임포트# numpy import numpy as np # pandas import pandas as pdCSV 파일 읽어오기# 파일명: data.csv # pandas read_csv 함수 활용 # df 변수로 저장 df = pd.read_csv('data.csv')데이터 확인하기데이터 일부 출력df.head() df.tail()자료구조 파악# row, columns, not-null, type df.info()데이터 인덱스, 컬럼명, Values 확인df.index df.columns df.valuesNull 데이터 확인df.isnull().sum()통계 정보df.describe()데이터 전처리 수행컬럼 삭제df.drop('X_1', ax..

[Python] 연습 2022.09.11

[Python] NumPy 배열 인덱싱, 슬라이싱 연습

기본적으로 자료구조란 데이터의 묶음과 그 묶음을 관리할 수 있는 바구니를 의미합니다. 데이터 분석을 위해서 자료구조를 사용하지만 자료구조 내용에 접근하는 방법을 알아두는 것은 반드시 필요하므로 이번 포스팅에서는 기본적인 인덱싱과 슬라이싱을 연습하기 위한 코드로만 구성하였습니다. NumPy의 배열(Array)의 인덱싱과 슬라이싱은 기존의 list 방법과 동일합니다. 해당 연습을 하기 전에 Numpy에 대한 학습이 필요한 경우 다음의 포스팅을 참고해주세요. 2022.07.06 - [[Python] 연습] - [Python] numpy 기본 정리 Prerequisite import numpy as np 연습용 배열 생성 # 연습용 array 생성 test_arr = np.arange(5, 16) test_ar..

[Python] 연습 2022.07.07

[Python] enumerate () 함수

파이썬의 내장 함수 중에 enumerate() 함수는 반복 가능한 객체에 들어있는 요소와 인덱스를 튜플로 묶어서 객체를 반환해주는 함수입니다. 이 때 enumerate()함수에는 (반복 가능한 객체)를 넣어주게 됩니다. 간단하게 for 반복문을 사용해서 확인해볼 수 있습니다. 1) 일반적인 for 반복문으로 요소 출력하기 일반적으로 for 반복문을 통해서 리스트의 각 요소를 출력하게 되면 아래와 같은 결과를 확인할 수 있습니다. 2) enumerate() 함수를 활용해서 for 반복문 결과 확인 이렇게 enumerate() 함수를 사용하면 인덱스와 요소를 함께 출력할 수 있습니다. 참고로 인덱스 시작 번호를 2부터 시작하고 싶다면 아래와 같이 작성해주면 됩니다. # index의 start를 2부터 for..

[Python] 연습 2022.06.30

[Python] 결측값 처리하기(dropna)

결측값이 있는 행이나 열을 삭제하고자 하는 경우에는, dropna() 함수를 사용하면 된다. DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False) Parameter 설명 axis 0 또는 'index'로 하면, 행에 대한 제거 (디폴트) 1 또는 'columns'로 하면, 열에 대한 제거 how 'any'는 행 혹은 열 방향으로 결측값이 하나라도 있으면 제거 (디폴트) 'all'은 모든 값이 결측값이면 제거 thresh 최소 n개가 결측값이 아니면 그 행(또는 열)을 제거하지 않음 예를들어 thresh = 4로 지정하면 그 행(또는 열)에 최소한 4개의 값은 결측값이 아닌 경우를 제외하고 나머지는 다 제거 subset 특..

[Python] 연습 2022.03.27

[Python] Series

파이썬에서의 Series는 어떤 데이터 타입이든 보유할 수 있는 1차원 배열 자료구조이다. Series는 index, value, data type 집합으로 구성되고 리스트 자료형으로 생성이 가능하다. # Series를 생성하기 위해서 pandas를 먼저 import한다. import pandas as pd # Series 생성 mySeries1 = pd.Series([2, 6, 4, 8]) print(mySeries1) 위의 결과를 보면 각 값에 대한 index는 0, 1, 2, 3으로 부여된 것을 알 수 있다. 아래와 같이 index, value, dtype에 대한 내용도 확인이 가능하다. # Series에 저장된 값 확인 print(mySeries1.values) # 결과:[2 6 4 8] # In..

[Python] 연습 2022.03.26

[Python] 데이터 정규화

데이터를 분석하다보면 정규화가 필요한 경우를 종종 마주하게 된다. R에서도 정규화에 대한 내용을 다루었지만 파이썬을 이용해서 정규화를 쉽게 하는 방법에 대해서 알아보고자 한다. scikit-learn의 MinMaxScaler를 통해서 정규화 하는 예시는 아래와 같다. from sklearn.preprocessing import MinMaxScaler data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]] scaler = MinMaxScaler() print(scaler.fit(data)) # 결과: MinMaxScaler() print(scaler.transform(data)) # 결과: [[0. 0. ] [0.25 0.25] [0.5 0.5 ] [1. 1. ]] 처음에는 Mi..

[Python] 연습 2022.03.25

[Python] 판다스 특정 문자열 포함 판단하기

이번 포스팅에서는 데이터프레임의 열에 특정 문자열이 포함되었는지를 판단하고, 이 조건에 해당하는 행만 출력하는 방법을 알아보겠습니다. 이러한 경우에 사용할 수 있는 것이 str.contains( )입니다. 아래와 같은 예시 데이터를 통해서 코드를 실행해보겠습니다. 1. 하나의 열에서 특정 문자를 포함한 레코드만 출력하기 # 구매상품에 '투자'가 있는 레코드만 출력 df[df['구매상품'].str.contains('투자')] 구매상품에 '투자'라는 단어가 포함된 서적만 출력되었음을 알 수 있습니다. 2. 하나의 열에서 특정 문자를 포함한 레코드의 수를 구하기 # 구매상품에 '투자'가 포함된 레코드 수를 구하는 방법 len(df[df.구매상품.str.contains('투자')]) # 결과: 4 레코드의 수를..

[Python] 연습 2022.03.12

[Python] 판다스 문자열 구분자로 나누기

파이썬 판다스에는 문자열을 다룰 수 있는 여러 함수가 존재합니다. 그 중에서 자주 사용할 수 있는 것이 split()일 것입니다. str.split('구분자') 형식을 사용하면 쉽게 컬럼을 나눌 수 있습니다. 4가지 방법을 아래의 예시를 활용하여 연습해보겠습니다. 일단 아래의 예시 데이터를 가운데 공백을 구분자로 하여 '년월일'과 '시분' 정보로 구분해보겠습니다. - 방법1 이 방식은 문자열을 구분하여 발생하는 새로운 열을 직접 데이터프레임에 붙입니다. df['년월일'] = df['회원가입 정보'].str.split(' ').str[0] df['시분'] = df['회원가입 정보'].str.split(' ').str[1] df - 방법2 이 방법은 문자열을 구분하여 새로운 데이터프레임 형태로 바로 생성합니..

[Python] 연습 2022.03.11

[Python] Selenium Data Crawling 준비 (맥 용)

1. Selenium 설치 pip install selenium 2. 웹드라이버 준비(크롬 기준) 크롬 브라우저 버전 확인 브라우저 상단 주소표시줄 가장 우측 점 세개 클릭 → 가장 하단 '도움말' → 'Chrome 정보' 클릭해서 나오는 설정 화면에서 크롬 브라우저의 버전을 확인한다. 현재 사용 버전은 98.0.4758.80 이므로 해당 버전에 맞는 드라이버를 다운 받으면 된다. 크롬드라이버 다운로드 https://sites.google.com/chromium.org/driver/ 해당 주소에서 확인한 버전에 맞는 드라이버를 찾아서 다운받는다. 화살표로 표시한 다운로드에 들어가서 보면 최근 릴리즈부터 차례로 나와있으니 해당하는 버전에 맞게 다운받으면 된다. 리눅스, 맥, 윈도우에 맞게 .zip 파일을 ..

[Python] 연습 2022.02.17

[Python] 기초 문법 6

함수 def 함수이름(매개변수1, 매개변수2, ...): code ... return 함수의 형태 - parameter와 return이 존재 def add(x1, x2): y = x1 + x2 return y - return이 없는 함수 def noReturn(a, b): print(a + b) - parameter가 없는 함수 def noParam(): a = '매개변수가 없는 함수' return a noParam() # 매개변수가 없는 함수 - parameter와 return이 둘 다 없는 함수 def noBoth(): print('모두 없는 함수') noBoth() # 모두 없는 함수 매개변수의 수가 일정하지 않을 때 함수의 구현 '*'을 매개변수 앞에 사용함으로써 여러 개의 매개변수를 받을 수 있..

[Python] 연습 2022.01.08