Tableau Prep을 사용할때 tabpy를 활성화 하고, python코드를 .py로 만든뒤 사용하면 prep을 좀더 유의미하게 사용할 수 있다.
이번엔 특정 언어들로 이루어진 데이터를 python코드를 사용해서 번역 후 데이터로 추출하는 prep을 만들어 볼 것이다.
필요한것 : 1) 우선 tabpy 서버가 활성화 되있어야 한다. |
설치 방법 : cmd / terminal - pip install tabpy - tabpy |
위의 순서대로 명령어를 실행하면 localhost:9004에 기본적으로 tabpy가 설치되어 있을 것이다.
- nohup tabpy & |
위 명령어를 실행하면 백그라운드에 서버(컴퓨터)를 끄지 않는한 tabpy가 꺼지지 않도록 할 수 있다.
아래 이미지 처럼 되어 있으면 정상적으로 설치된것이다, 안될경우 tabpy의 환경 변수를 변경하도록 하자.
2) Prep에서 Tabpy와 연결이 되어 있어야 한다.
도움말(help) -> 설정 및 성능(Settings and Performance) -> Analytics 확장 프로그램 연결 관리(Manage Analytics Extension Connection)으로 이동하여 tabpy를 연결하면 된다.
3) 스크립트를 작성하자. Python코드로 .py 형태로 저장하면 된다.
3-1) 사용한 데이터는 .xlsx이고 아래처럼 각기다른 언어로 이루어진 [Prodcut] 컬럼이 있다고 하자.
Product -> 번역(translate) -> Prdocut_trans라는 컬럼에 영어로 번역된 값으로 추출할 것이다.
결과 예시
Tableau Prep script 흐름 생성 시 사용할 .py의 전문
import pandas as pd
from googletrans import Translator
#여기에 내가 원하는 동작을 하는 함수를 넣어주면 된다. df는 자동으로 input 데이터를 가져온다.
#또한 return df에 별다른 동작을 하지 않아도 알아서 get_output_schema가 실행되어 return된 df를 prep에 사용할 수 있는 형태로 가공한다.
def translate_product(df):
translator = Translator()
df['Product_trans'] = df['Product'].apply(lambda x: translator.translate(x, dest='en').text)
df['Language'] = df['Product'].apply(lambda x: translator.detect(x).lang)
return df
def get_output_schema():
return pd.DataFrame({
'Product': prep_string(),
'Product_trans': prep_string(),
'Language': prep_string()
})
여기서 중요한 것이 get_output_schema이다. 무조건 있어야 하는 함수로,
Prep에서 자동으로 해당 함수를 가져와서 return df를 prep에서 사용가능한 형태로 가공하는 함수다.
df는 별도로 지정을 안해줘도 input(입력)을 알아서 가져온다.
4) 위 python 코드를 Product_trans.py로 저장해준다.
5) Prep에서 script를 흐름을 만들어주고 아래와 같이 세팅해준다.
Function Name은 .py에 입력한 함수를 넣어주면 된다.
결과
위에서는 단순하게 번역하는 함수를 사용하였지만, ML이나 다른 함수들을 사용하면 데이터를 여러방법으로 전처리할 수 있다.
끝.
'Tableau 흡수내용' 카테고리의 다른 글
[Tableau(태블로)]Python으로 서버에 게시된 데이터를 Dataframe으로 추출하기(download or export hyper to csv,dataframe) -추가 자료 (1) | 2023.11.15 |
---|---|
[Tableau/태블로]Abc 없애기(hide Abc part) (1) | 2023.10.26 |
[Tableauserverclient/TSC] UnpopulatedPropertyError 에러 해결하기 (0) | 2023.09.20 |
[Tableau Embedding]unnecessary scrollbar hide (0) | 2023.08.18 |
[Tableau Server]sign in 400 error, exceeded_max_refresh_token_count [solved] (0) | 2023.07.31 |