분류 전체보기 65

[django+elasticsearch+vue.js] (1) - 엘라스틱서치와 장고 설치하기

목표 도커로 elasticsearch, kibana, logstash 설치 django 설치 환경 window 10 vscode vscode 터미널 주의사항 이 블로그와 게시글은 기록용에 가깝기 때문에 설명이 정확하지 않으니, 공식 문서를 통해 개념을 정립하시길 바랍니다. 엘라스틱서치(Elasticsearch) docker로 설치하기 docker-elk 레포지토리는 도커로 손쉽게 elasticsearch, logstash, kibana를 설치할 수 있다. https://github.com/deviantony/docker-elk 위 깃허브를 fork하거나 다운로드하고, readme의 순서대로 진행한다. (Java Heap 문제가 종종 있으니, elasticsearch 도커의 공식문서 (링크))를 참고하길 ..

개발일지 2022.10.24

[Pandas] combine_first - 두 컬럼 중 먼저 나온 값을 기준으로 새로운 컬럼 생성하기

아래 구조와 같이 col1, col2 중 먼저 나오는 데이터를 기준으로 새로운 컬럼을 만들어야하는 경우가 있다. 이때는 'combine_first'를 사용하면 만들 수 있다. import pandas as pd #둘 중 하나에 값이 있으면 합치기 df['new_col'] = df['col1'].combine_first(df['col2']) df.drop([['col1','col2]], axis=1, inplace=True) # 필요없는 컬럼은 삭제 참고 블로그 - https://wikidocs.net/153673 08-02. 다른 객체로 결측치 덮어쓰기 (combine_first) ####DataFrame.combine_first(other) ##개요 `combine_first` 메서드는 `other`의..

[Pandas] literal_eval - 문자열 리스트를 list type으로 변환하기

데이터 프레임을 다룰 때, 특정 컬럼의 형태가 아래 그림과 같이 형성된 경우가 있다. 하나의 셀에 리스트 형태로 들어있는 문자열이 있으면, type이 str로 인식하기 때문에 이 컬럼을 for문 등의 조건문을 사용할 수 없다. 이를 해결하기 위한 방법으로 ast.literal_eval 함수를 사용할 수 있다. 하나의 문자열만 해결하는 것 보단, 데이터프레임 수준에서 적용할 수 있는 코드를 공유하고자 한다. 데이터프레임의 특정 컬럼의 모든 셀을 한번에 변환하기 위해선, 예외 처리를 포함한 함수를 만들어 lambda를 적용하는 것이 좋다. 아래 코드는, str_to_list(x) 함수를 만들었고, 특정 컬럼에 apply와 lambda를 사용했다. import pandas as pd from ast impor..

[Pandas] 한글 깨짐 방지를 위해 인코딩은 'UTF-8-SIG'로 저장하기

pandas를 사용한지 2년이 넘었지만, 사소한 부분에서 모르고 넘어간 부분이 많았다. 한글 인코딩은 'utf-8' 또는 'cp949'로 저장된 데이터가 많은것은 알고있었지만, 흔히 'utf-8'로 저장한 csv나 excel 파일을 열면 한글 깨짐의 상태로 열린다. MS excel 365에서 깨지지 않게 보기 위해선 '데이터 > 데이터 가져오기 > 파일에서 > 텍스트/csv에서'를 클릭해 불러오고자하는 데이터를 선택하면 된다. 그 동안 이 방법으로 번거롭게 열었는데, 최근 'UTF-8-SIG'로 저장하면 파일형식간의 호환을 지원해주어 깨지지않고 바로 열 수 있다는 걸 알게 됐다. import pandas as pd # 데이터 프레임 만들기 df = pd.DataFrame(data=sample_data) ..

[Pandas] '', NaN 값을 None으로 변환하기

데이터 전처리를 위해서, 조건절에서 None을 기준으로 데이터를 판단하는 경우가 많다. 하지만, Pandas로 데이터프레임을 불러오는 과정에서 Null 값의 처리가 제대로 되지않으면 원하는 결과를 낼 수 없다. 보통 np.NaN 또는 None을 기준으로 null 값 처리하기 때문에 이 글은 None값 처리를 하는 코드의 예시이다. import pandas as pd import numpy as np # 데이터 불러오기 path = r'파일경로' df = pd.read_csv(path,keep_default_na=False, # 빈 값은 None값으로 불러오기 na_values = ['?', '??', 'N/A', 'NA', 'nan', 'NaN', '-nan', '-NaN', 'null','None', ..