분류 전체보기

    streamlit_kmeans 진행중 에러 - UnicodeDecodeError

    https://github.com/reodinas/streamlit_kmeans 프로젝트 진행 중 발생한 문제 해결 과정을 기록한 포스트입니다. 테스트 중에 csv 파일을 업로드 받을 때 에러가 발생했다. csv 파일 인코딩 방식이 'utf-8'이 아니라면 이 에러가 뜬다. try, except 구문으로 에러가 발생하면 인코딩 방식을 입력받게 수정했다.

    streamlit_kmeans 진행중 경고 - UserWarning

    https://github.com/reodinas/streamlit_kmeans 프로젝트 진행 중 발생한 문제 해결 과정을 기록한 포스트입니다. sklearn.cluster.kmeans를 사용하다 뜬 warning. 사용 가능한 스레드보다 청크가 적을 때 MKL이 있는 Windows에서 메모리 누수가 발생하는 것으로 알려져 있고, 환경변수 OMP_NUM_THREADS=1 을 설정하여 이 문제를 방지할 수 있다고 한다. OMP_NUM_THREADS=1 설정하는 방법 KMeans를 임포트하기 전에 아래 코드를 실행하면 더 이상 경고문이 뜨지 않는다. import os os.environ["OMP_NUM_THREADS"] = "1"

    streamlit_leisure 진행중 에러(3) - ValueError: Lengths must match to compare

    https://github.com/reodinas/streamlit_leisure 프로젝트 진행 중 발생한 문제 해결 과정을 기록한 포스트입니다. 유저에게 선택을 받아 선택받은 데이터만을 보여주는 기능을 구현하다 또 이 에러가 발생했다. 주피터 노트북에서 테스트 할 때는 잘 됐었기 때문에 잠시 헤맸는데, 결론은 박스 친 코드가 문제였다. selected group2가 하나의 문자열일 때는 문제가 없었지만, st.multiselect로 입력 받은 값은 리스트가 되기 때문에 문자열이 리스트와 같냐고 물어본 꼴이다. 따라서 짝이 맞지 않다고 에러가 뜬다. 이 버그를 수정하기 위해 박스 친 부분의 코드를 apply 함수를 사용해 다음과 같이 바꿔주었다. df_new = df[df[selected_group].a..

    streamlit_leisure 진행중 에러(2) - DuplicateWidgetID

    https://github.com/reodinas/streamlit_leisure 프로젝트 진행 중 발생한 문제 해결 과정을 기록한 포스트입니다. streamlit으로 차트를 구현하다가 위와 같은 에러가 발생했다. 찾아본 결과 위젯이 생성되면 구조에 따라 내부 키가 할당 되는데, 구조가 동일한 위젯은 같은 내부 키가 할당되어 DuplicateWidgetID 에러가 발생한다고 한다. 이 에러를 해결하기 위해서는 st.selectbox에 key를 지정해주면 된다.

    streamlit_leisure 진행중 에러(1) - ValueError: Lengths must match to compare

    https://github.com/reodinas/streamlit_leisure 프로젝트 진행 중 발생한 문제 해결 과정을 기록한 포스트입니다. 매주 조사하여 추가되는 데이터의, 추가본을 업로드 하면 데이터를 합치고 저장하는 기능을 구현했다. 개선사항으로 이상한 데이터가 들어왔을 때 합치지 않기 위해 컬럼명이 일치하는 지를 검사하려 한다. 코드는 아래와 같다. if np.all(df_origin.columns == df_new.columns): 정상적으로 작동할 줄 알았지만 에러가 발생했다. 이 에러의 원인은 전혀 다른 데이터프레임을 업로드 했을 때, 양쪽 컬럼의 갯수가 다르면 비교할 배열의 짝이 안 맞기 때문에 발생하는 것이다. 해결하기 위해 try, except 구문으로 예외처리를 했다. 전체 코드..

    Streamlit - 수정 사항이 있으면 자동으로 갱신하도록 실행하기

    https://donghyeok90.tistory.com/135 GitHub Actions를 이용한 CI/CD 파일을 수정하면, EC2 서버에 자동 배포하는 법을 알아보자. AWS EC2에 접속하려면 호스트주소, 키파일, username이 있어야 한다. 깃허브가 자동으로 EC2 서버에 접속해서 배포하려면 이 정보들을 가지 donghyeok90.tistory.com 위 포스팅에 이어서, github actions 설정을 마치고 돌아가고 있는 streamlit 서버를 확인해봤는데 수정내용이 반영되지 않았다. 확인해보니 서버에 있는 소스코드 파일은 제대로 수정이 되었다. 원인은 바로 일반적인 실행명령인 streamlit run을 사용하면 로컬에서 테스트할 때, 변경사항이 있을 때 rerun을 눌러줘야 했는데,..

    GitHub Actions를 이용한 EC2 서버 CI/CD

    파일을 수정하면, EC2 서버에 자동 배포하는 법을 알아보자. AWS EC2에 접속하려면 호스트주소, 키파일, username이 있어야 한다. 깃허브가 자동으로 EC2 서버에 접속해서 배포하려면 이 정보들을 가지고 있어야 한다. 1. PPK 키 파일을 PEM으로 변환 먼저 키파일 확장자가 ppk라면 윈도우즈 용이므로 리눅스용인 pem 파일로 변환해줘야 한다. PuTTYgen 실행 Load를 눌러 내 키파일을 등록한다. conversions - Export OpenSSH key 선택 후, 파일명.pem으로 저장한다. 2. Action secrets 를 만든다. EC2 접속에 필요한 호스트주소, 키파일, username을, github 레파지토리 Action secrets에 저장한다. New reposito..

    Plotly 서브 플롯 그리는 법

    from plotly.subplots import make_subplots import plotly.graph_objects as go fig = make_subplots(rows=1, cols=3) df_bar = df_bar.sort_values('lsr_work', ascending=False) fig.add_trace(go.Bar(x=df_bar.index, y=df_bar['lsr_work'], name='평일 여가시간'), row=1, col=1) df_bar = df_bar.sort_values('lsr_weekend', ascending=False) fig.add_trace(go.Bar(x=df_bar.index, y=df_bar['lsr_weekend'], name='주말 여가시간'), ..