1. nltk에 필요한 파일들을 별도로 내려 받아 놓음

2. nlt의 path에 참조할 경로를 추가해준다.

import nltk

nltk.data.path.append("/home/parkselec/space_common/users/kp19983/NLTK")

3. 개별 download 해야 하는 데이터별로 경로가 다르므로 디렉터리를 적절히 생성해서 데이터를 저장해야 한다.

 

https://www.nltk.org/howto/data.html

반응형

 파이썬에서 여러 테이블을 하나로 머지할 때, 예전에는 pd.merge(a, b, on = 'key', how='left', validaiton='m:m') 을 중첩해서 사용해야만 했다. 예전 회사에서는 급하게 코딩하느라 이런 것을 생각하지 않았는데, 파이썬에서 여러개 테이블을 한번에 JOIN하는 아주 아름다운 방법이 있었다.

 

from functools import reduce

dfs=[df1, df2, df3, df4, df5]

base_df=reduce(lambda left, right: pd.merge(left, right, on='KEY', how='left', validate='m:m'), df)

 

 위와 같은 방식으로 하면 여러번 중첩하지 않아도 되는 테이블을 만들 수 있다. 물론 사전에 데이터프레임별로 중복되거나 하는 것들을 미리 정리하고 해야 하는 번거로움이 있기는 하지만 pd.merge(pd.merge())를 여러번에 걸쳐서 사용하는 것보다 훨씬 간편하고 효율적이라고 말해주고 싶다.

반응형

 1. 숫자형 컬럼

 num_cols=cpt_d1.dtypes(include=np.number).columns

 cpt_d1[num_cols] = cpt_d1[num_cols].fillna(0)

2. 문자형 컬럼

 str_cols=cpt_d1.dtypes(include=np.number).columns

 cpt_dt1[str_cols] = cpt_dt1[str_cols].fillna('')

 

 이렇게 하면 급하게 문자 및 숫자 missing값을 찾아서 보정이 가능합니다.

반응형

 회사 시스템에서는 플랫폼 화면 자료를 JSON으로 저장하고 이를 Text로 인코딩하여 테이블의 Clob 포맷으로 저장되어 있었다. 내가 원하는 것은 해당 자료를 디코딩해서 JSON String 포맷으로 만들고 여기서 내가 원하는 워드가 몇개 포함되어 있는 확인하는 것이었다. 가장 먼저 해야 할 것은 Text를 JSON String으로 변환하는 것이었다. 나를 도와주신 분은 Tech background가 있고, Java/C 기반 배경을 갖고 있고 나는 Python으로 해야 해서 검색을 해서 찾아낸 것이 바로 base64 library 였다.

 

import base64

str = 'ABDkjhdkobldop'

str_bytes = str.decode('UTF-8')

str_bytes

 

이렇게 하니까 내가 원하는 String 포맷으로 자료가 나왔다. 이 다음에 String 자료를 정제하고 함수를 이용해서 내가 원하는 워드를 포함한 것을 산출할 수 있었다. 구체적인 것은 다음에 코딩 자료를 추가하고, 구글에서 검색했던 자료를 링크해 본다.

 

https://webisfree.com/2020-11-07/python-base64-%EC%9D%B8%EC%BD%94%EB%94%A9-%EB%94%94%EC%BD%94%EB%94%A9-%EB%B3%80%ED%99%98-%EB%B0%A9%EB%B2%95

 

 원래는 자바로만 되는줄 알았는데 파이썬에서 된다고 해서 아주 빠르게 업무 처리가 가능해졌다는 것을 알 수 있었다.

 

반응형

 LightGBM에서 plot_tree()에서 에러가 나서, 해당 트리 모형을 수기로 그리는 것 이외에는 별다른 방법이 없다.

아래가 찾고 찾아서 만든 트리 모델 정보 가져오는  코드를 설명해주는 사이트이다. 아래 코드에서 clf.booster_trees_to_dataframe() 는 작동하지 않는다.

 

https://stackoverflow.com/questions/71305141/is-there-a-way-to-get-tree-data-as-a-list-with-the-lightgbm-classifier

 

Is there a way to get tree data as a list with the LightGBM Classifier

In random forest type models, there is usually an attribute like "estimators" which returns all the tree split as a list of lists. I can't seem find something similar with lightgbm. The c...

stackoverflow.com

 

반응형

 Python dataframe의 경우, SQL과는 달리 인덱스와 시리즈라는 것이 존재한다. 그래서 특정 조건을 걸어서 스트링을 잘라내는 것은 가능하나 그것을 날짜로 변환하는 것은 별도의 문제가 된다.

 

for col in dt_list:

    if col != 'PROC_YYMM':

        temp[col + '_MCN'] = 99999999

        for i in temp[temp[col] != '17010101'].index:

            print(col, pd.to_datetime(temp.at[i, col], format='%Y%m%d').year)

            temp.at[i, col + '_MCN'] = pd.to_datetime(temp.at[i, col], format='%Y%m%d').year

 

 

https://kongdols-room.tistory.com/117

 

패스트 인덱싱(.at, .iat)-pandas(15)

파이썬 버전 3.7 기준 pandas 버전 0.25.1 기준  패스트 인덱싱(at, iat) 본 포스팅에서는 .at 및 .iat 메서드를 다루도록한다.  .at 및 .iat 메서드 대괄호[ ]를 사용한 인덱싱은 많은 입력을 받을 수 있다.

kongdols-room.tistory.com

 

 

반응형

+ Recent posts