파이썬/라이브러리(API)16 싸이킷런 (sklearn) train_test_split 에러 발생 원인 싸이킷런 모델 fit 적용 시 에러 발생 원인 정말 별거 아닌데 별거 아니라서 잘 안보이던 에러입니다. " ValueError: Found input variables with inconsistent numbers of samples" 원인은 train_test_split 메소드로 트레인 데이터와 테스트 데이터를 나눌 때 순서를 잘 못 줬기 때문.. Feature인 X_train과 타겟인 Y_train은 당연히 행의 갯수가 같아야하는데 순서를 잘 못 적으면 데이터도 틀어지지만 무엇보다 행의 갯수가 달라지기 때문에 위의 에러가 발생합니다. 아무 생각없이 X_train, Y_train, X_test, Y_test로 나누면 안되고 아래와 같이 X를 먼저, Y를 뒤에 적어줘야 해결이 가능합니다! # 테스트 데이.. 파이썬/라이브러리(API) 2024. 4. 13. 파이썬 한글 형태소 분석, 태깅 라이브러리 KoNLPy 사용법 KoNLPy 패키지 및 JDK설치, 설정은 아래 링크를 참조해주시면 됩니다. https://codevang.tistory.com/351 코엔엘파이를 통해서 사용할 수 있는 형태소 분석기로 Okt(Open Korea Text), 메캅(Mecab), 코모란(Komoran), 한나눔(Hannanum), 꼬꼬마(Kkma) 다섯가지가 있습니다. 한국어 NLP에서 형태소 분석기 사용은 단어의 토큰화라기보다는 형태소(morpheme) 단위로 형태소 토큰화(morpheme tokenization)를 수행하게 됨을 뜻합니다. 영어는 공백 기준으로 끊어주면 되지만 한글은 조사 등 여러 형태에 따라 나눠줘야 하기 때문입니다. KoNLPy 사용하기 Kkma(꼬꼬마)를 비롯한 다섯가지 라이브러리들의 사용법은 동일합니다. imp.. 파이썬/라이브러리(API) 2024. 3. 26. 파이썬 한글 형태소 분석, 태깅 라이브러리 KoNLPy 설치하기 KoNLPy 한국어 텍스트를 분석할 수 있는 kkma(꼬꼬마), Okt 등의 라이브러리를 모아둔 패키지입니다. 업데이트된지 오래되긴 했지만 아무래도 ""nltk"와 같이 외국어 위주의 라이브러리보다는 활용성이 좋은 듯 합니다. KoNLPy 설치하기 파이썬에서 KoNLPy를 설치하기 위해서는 보통 두 가지가 필요합니다. 1. JDK 16 버전 이상 2. 아나콘다 물론 아나콘다 대신 직접 파일을 받아 설치하는 방법도 있습니다만, 아무래도 파이썬으로 데이터 분석 및 머신러닝을 진행하기 위해서는 아나콘다가 가장 효율적이지 않을까 합니다. KoNLPy 사용을 위한 JDK 설치 및 환경변수 설정하기 JDK는 자바가 돌아갈 수 있도록 해주는 개발자 툴이라고 보면 됩니다. "Java Development Kit"의 약.. 파이썬/라이브러리(API) 2024. 3. 25. 파이썬 BeautifulSoup select 사용해서 HTML 웹페이지 크롤링하기 BeautifulSoup select 메소드 기존 포스팅에서는 find와 find_all 메소드를 통해 HTML 페이지를 파싱해 원하는 태그를 찾는 방식을 사용했습니다. 하지만 select 메소드를 사용하면 좀 더 편하게 태그를 찾을 수 있어서 이번에는 해당 방법으로 네이버 증권의 일별 코스피 지수를 크롤링해보도록 하겠습니다 . BeautifulSoup select 사용해 웹페이지 크롤링하기 먼저 HTML의 표 정보를 가져와서 저장하고, 데이터프레임까지 넣을 수 있도록 세 개 라이브러리를 가져오겠습니다. import requests from bs4 import BeautifulSoup import pandas as pd select 메소드를 사용하기 위해 BeautifulSoup의 형식 옵션값으로 'lx.. 파이썬/라이브러리(API) 2024. 3. 22. 파이썬 자바스크립트 json 웹페이지 크롤링하기 JSON (JavaScript Object Notation) json은 데이터를 속성과 값으로 나열해서 표현하는 경량의 데이터 교환 형식입니다. 자바스크립트 구문을 기반으로 웹 브라우저와 서버 간 데이터 교환에 많이 사용됩니다. 이 교환방식을 사용하는 페이지의 경우 HTML 형태가 아니기 때문에 기존에 사용하던 BeautifulSoup을 이용한 HTML 파싱이 불가능합니다. 따라서 다른 방법을 이용해야합니다. 웹페이지 자바스크립트 여부 확인하기 HTML 크롤링을 하던데로 해보면 내용은 없고 이상한 문구들만 긁어와지는 경우들이 있습니다. 이 경우 자바스크립트와 JSON 형태의 웹페이지라고 볼 수 있습니다. 가장 간단한 방법은 브라우저에서 확인하는 방법입니다. 크롬 기준으로 F12를 눌러 개발자 모드를 활성.. 파이썬/라이브러리(API) 2024. 3. 21. 파이썬 뉴스 기사 크롤링 및 빈도 분석, 워드 클라우드 그리기 빈도 분석의 의미 빈도 분석이랑 문장이나 대화 속 각각의 문자들이 출현하는 경향의 정도를 분석하는 것을 의미합니다. 뉴스의 경우 특정 단어의 빈도 분석을 통해 사안의 중요도와 파급력 등을 유추해 볼 수도 있습니다. 워드 클라우드 빈도에 따라 글자크기를 달리해 그림을 그려 직관적으로 이해할 수 있도록 만들어줍니다. 딕셔너리를 이용한 빈도 분석 알고리즘 딕셔너리에 단어를 key로 추가하고 key가 있으면 value값에 카운트를 추가, 없으면 새롭게 딕셔너리에 등록해주는 방식으로 간단하게 사용할 수 있습니다. 하나의 단어만 찾는다면 그냥 변수 하나에 카운트를 하면 되지만 여러개를 찾을 때는 딕셔너리가 좋은 대안이 될 수 있습니다. words = ["사과", "양파", "사과", "피망", "피망", "대파"].. 파이썬/라이브러리(API) 2024. 3. 14. 파이썬 웹페이지 크롤링 표를 데이터프레임으로 만들기 표 형태 데이터 페이지 번호 가져오기 표가 한장이면 그냥 가져오면 되는데 보통 웹페이지에서 표 형태는 상당히 많은 데이터를 가지고 있기 때문에 여러 페이지인 경우가 많습니다. 이럴 때 마지막 페이지 번호를 알아야 반복문을 사용해 모든 데이터를 가져올 수 있기에 먼저 데이터의 처음과 마지막을 파악하는 것이 중요합니다. 네이버의 주식 시가총액 순 주식 데이터를 가져와보겠습니다. 아래 url에 있는 화면입니다. https://finance.naver.com/sise/sise_market_sum.naver?sosok=0&page=1 먼저 가장 아랫쪽에 페이지번호가 있는 html의 태그를 확인하겠습니다. 페이지번호에 마우스로 오른쪽 클릭 후 "검사" 버튼을 누르면 개발자 모드에서 코드를 볼 수 있습니다. 쭉 훑어.. 파이썬/라이브러리(API) 2024. 3. 11. 파이썬 인터넷 웹페이지 크롤링하기 파이썬 인터넷 웹페이지 크롤링 라이브러리 파이썬으로 웹페이지를 크롤링하기 위해서는 기본적으로 아래 4가지의 라이브러리를 많이 사용합니다. requests : 페이지 요청 라이브러리 bs4의 BeautifulSoup : HTML 다루는 라이브러리 time : 안전하게 수집하는 방법 pandas : 수집한 데이터 엑셀화 추가로 이전 포스팅에서 다뤘던 정규표현식까지 사용해주면 조금 더 편리하게 사용할 수 있습니다. https://codevang.tistory.com/344 로또 번호 크롤링해서 가져오기 먼저 다음 사이트에서 "로또"를 검색해봅니다. 사이트 주소를 복사한 뒤 "requests" 라이브러리를 통해 페이지를 요청합니다. 결과가 200번대이면 문제없음, 400번대이면 페이지 없음 등의 에러발생, 50.. 파이썬/라이브러리(API) 2024. 3. 9. 파이썬 판다스 데이터에 순위 매기기 판다스 rank() 함수 사용해 데이터 순위 매기기 "rank()" 함수를 사용하면 데이터의 순위를 간단하게 매길 수 있습니다. 순위를 적용하는 옵션이 여러 가지 있으니 주의해서 사용하면 됩니다. df.rank(method="순위옵션", ascending=True/False) 기본옵션인 오름차순은 순위를 매길 기준 값이 낮을 수록 높은 순위를 줍니다. 예를 들어 1~10까지 있다면 1이 1순위가 되는 것이죠. 하지만 시험 점수와 같이 큰 숫자가 높은 순위를 가져가도록 한다면 기준값을 내림차순으로 만들어 순위를 매겨줘야 합니다. 따라서 "ascending = False" 값을 줘서 꼭 내림차순으로 만들어줘야합니다. 점수가 높을 수록 순위가 높다(시험점수) : 내림차순 적용 ascending = False .. 파이썬/라이브러리(API) 2024. 3. 8. 판다스 데이터프레임 행과 열 값 바꾸기 열에 있는 값을 행으로 내리는 방법 판다스의 "melt()" 함수를 통해 간단히 수행할 수 있습니다. 먼저 데이터를 불러옵니다. import pandas as pd billboard = pd.read_csv("billboard.csv") pd.melt(데이터프레임, id_vars = ["남겨둘 컬럼"], var_name = "이동된 컬럼 이름", val_value = "값의 컬럼 이름") 한 번에 열의 값을 행으로 바꾸면 두 개의 컬럼이 새로 생기게 됩니다. 그대로 둘 컬럼과 함께 이름을 지정해줍니다. 가장 끝에 "week"와 "waiting" 컬럼이 추가된 것을 확인할 수 있습니다. billboard2 = pd.melt(billboard, id_vars = ["year", "artist", "track.. 파이썬/라이브러리(API) 2024. 3. 7. 판다스 데이터 누락값(결측치) 처리하기 판다스 누락값 결측치 파악하기 누락값이 있다면 연산에서 에러가 발생할 수 있으므로 데이터 작업 전에는 항상 누락값을 처리해주고 시작하는 것이 좋습니다. 이번 포스팅은 누락값을 처리하는 여러 방법들입니다. import pandas as pd ebola = pd.read_csv("country_timeseries.csv") 누락값은 if문으로 매칭할 수 없기 때문에 누락값의 존재 여부를 알기 위해서는 아래와 같은 방법을 사용해야합니다. 먼저 info를 통해 시각적으로 확인할 수 있습니다. ebola.info() 정확한 숫자를 알고 싶다면 아래와 같이 사용할 수 있습니다. ebola.index.stop - ebola.count() 누락값 데이터 입력하기 먼저 단순하게 특정 값이나 평균값 등의 통계 데이터로 채.. 파이썬/라이브러리(API) 2024. 3. 7. 판다스 데이터프레임 합치기 (데이터프레임 병합) 판다스 concat() 함수로 데이터프레임 합치기 먼저 같은 열이름과 행이름을 가진 데이터 프레임을 합치는 방법입니다. 일단 데이터를 로드해줍니다. 세 가지 데이터 모두 같은 형태를 취하고 있습니다. import pandas as pd df1 = pd.read_csv("concat_1.csv") df2 = pd.read_csv("concat_2.csv") df3 = pd.read_csv("concat_3.csv") 판다스의 "concat()" 함수를 사용해 3개 데이터를 합쳐보겠습니다. 기본은 언제나 열(컬럼, 시리즈) 단위로 되어 있기 때문에 컬럼명을 기준으로 아래로 붙어서 합쳐집니다. # 세 개 데이터프레임 합치기 concat1 = pd.concat([df1, df2, df3]) 인덱스를 기준으로 합.. 파이썬/라이브러리(API) 2024. 3. 7. 파이썬 시각화하기 - 맷플롯리브(matplotlib) 라이브러리 기초 matplotlib 사용준비 기초에서는 Matplotlib의 서브 패키지인 pyplot을 주로 사용합니다. "plt"라는 명칭으로 알려져있습니다. 테스트용 데이터셋을 받기위해 seaborn 라이브러리를, 데이터를 다루기 위해 pandas를 같이 사용하도록 합니다. 서로 연동도 잘 되어 있습니다. import pandas as pd import matplotlib.pyplot as plt import seaborn as sns 일단 테스트 데이터를 로드해줍니다. seaborn 라이브러리에서 제공하는 "anscombe" 데이터를 사용해봅니다. anscombe = sns.load_dataset("anscombe") 편의를 위해 구분자인 "dataset" 별로 데이터를 나눠서 저장해줍니다. anscombe = .. 파이썬/라이브러리(API) 2024. 3. 7. 판다스 데이터프레임에서 조건문(if문)으로 데이터 넣기 판다스에서 열(시리즈) 추가하기 가장 기본적으로 아래와 같이 추가해줄 수 있습니다. 의미 있는 데이터를 바로 넣어줘도 되고 껍데기만 넣어줘도 됩니다. 중복된 컬럼명을 넣으면 에러가 발생합니다. dataframe['컬럼명'] = 0 위와 같은 방법으로 생성하면 열이 가장 오른쪽에 생성됩니다. 만약 원하는 위치에 삽입하고자 한다면 "insert()" 메소드를 써주면 됩니다. 매개변수는 (삽일할 인덱스 번호, 컬럼명, 데이터) 순입니다. 아래 코드는 3번 인덱스 순서에 새로운 컬럼을 일단 0을 넣어서 생성하겠다는 의미입니다. dataframe.insert(3, "컬럼명", 0) 판다스 데이터프레임 열에 조건문으로 데이터 삽입하기 데이터를 다루다보면 다른 컬럼들을 참고해서 새로운 컬럼의 값을 동적으로 지정해야할.. 파이썬/라이브러리(API) 2024. 3. 7. 파이썬 판다스 Pandas 기본 문법 및 기초 사용법 판다스 사용하기 판다스 라이브러리는 파이썬에서 표 형태의 데이터분석을 할 때 가장 많이 사용되는 라이브러리입니다. 엑셀, csv, tsv, pickle 등과 연동해 사용할 수도 있습니다. 데이터의 결측치를 쉽게 처리할 수 있고 형태 변형, 삭제, 추가 등이 용이하며 그룹화, 정렬, 결합이 쉽습니다. 또한 데이터의 시각화를 할 수 있는 다양한 기능이 있으며 문자열 및 날짜, 시간 처리도 간편합니다. 역시 아나콘다를 설치할 경우 자동으로 설치되고, 없다면 터미널에서 "pip install pandas" 명령어를 통해 설치해주면 됩니다. 통상적으로 "pd"로 명명해 사용합니다. import pandas as pd 판다스에서 CSV, TSV 파일 데이터 불러오기 먼저 "read_csv()" 메소드를 통해 콤마로.. 파이썬/라이브러리(API) 2024. 3. 6. 이전 1 2 다음 반응형