드레:
코딩 뿌시기
드레:
전체 방문자
오늘
어제
  • 분류 전체보기 (268)
    • Python (74)
      • Python 기초 (42)
      • Numpy (8)
      • Pandas (22)
    • Machine Learning (31)
      • Machine Learning (1)
      • Deep Learning (27)
    • AWS (22)
      • RDS (3)
      • EC2 (9)
      • Lambda (8)
      • S3 (2)
    • MySQL (24)
    • Git (8)
    • Streamlit (12)
    • REST API (22)
    • Java (24)
    • Android (36)
    • Debugging (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Java
  • 네이버 API
  • aws s3
  • AWS
  • AWS Lambda
  • pandas
  • 깃이그노어
  • JWT
  • Python
  • Retrofit2
  • Streamlit
  • EC2
  • tensorflow
  • volley
  • Ann
  • Lambda
  • API
  • fine tuning
  • GET
  • 안드로이드 스튜디오
  • github
  • flask
  • rest api
  • 액션바
  • Callback
  • Transfer Learning
  • 딥러닝
  • serverless
  • 서버리스
  • CNN

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
드레:

코딩 뿌시기

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

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

2022. 12. 20. 14:51

https://github.com/reodinas/streamlit_leisure

프로젝트 진행 중 발생한 문제 해결 과정을 기록한 포스트입니다.

 

 

 

 

매주 조사하여 추가되는 데이터의, 추가본을 업로드 하면 데이터를 합치고 저장하는 기능을 구현했다.

개선사항으로 이상한 데이터가 들어왔을 때 합치지 않기 위해 컬럼명이 일치하는 지를 검사하려 한다.

코드는 아래와 같다.

if np.all(df_origin.columns == df_new.columns):

 

정상적으로 작동할 줄 알았지만 에러가 발생했다.

 

이 에러의 원인은 전혀 다른 데이터프레임을 업로드 했을 때,

양쪽 컬럼의 갯수가 다르면 비교할 배열의 짝이 안 맞기 때문에 발생하는 것이다.

 

해결하기 위해 try, except 구문으로 예외처리를 했다.

 

전체 코드

try:
    # 컬럼명이 같으면
    if np.all(df_origin.columns == df_new.columns):
        #날짜가 중복되면
        if df_new['EXAMIN_BEGIN_DE'].unique() in df_origin['EXAMIN_BEGIN_DE'].unique():
            st.error('중복된 데이터입니다.')

        else:
            df_origin = pd.concat([df_origin, df_new])
            df_origin.dropna(axis=0, inplace=True)
            df_origin = df_origin.sort_values((['EXAMIN_BEGIN_DE', 'RESPOND_ID']))
            df_origin = df_origin.reset_index().drop('index', axis=1)
            df_origin.to_csv('data/df_origin.csv')

            st.success('저장에 성공했습니다.')
            st.dataframe(df_origin)
            st.write(f'현재 데이터는 {df_origin.shape[0]}행,  {df_origin.shape[1]}열 입니다')
            examine_date = df_origin['EXAMIN_BEGIN_DE'].unique()
            st.write(f'현재 데이터의 조사 날짜는 {examine_date} 입니다.')
    else:
        st.error('다른 형식의 파일입니다.')

except ValueError:
    st.error('다른 형식의 파일입니다.')

'Debugging' 카테고리의 다른 글

git pull 에러 - error: Your local changes to the following files would be overwritten by merge  (0) 2022.12.23
streamlit_kmeans 진행중 에러 - UnicodeDecodeError  (0) 2022.12.23
streamlit_kmeans 진행중 경고 - UserWarning  (0) 2022.12.23
streamlit_leisure 진행중 에러(3) - ValueError: Lengths must match to compare  (0) 2022.12.22
streamlit_leisure 진행중 에러(2) - DuplicateWidgetID  (0) 2022.12.20
    'Debugging' 카테고리의 다른 글
    • streamlit_kmeans 진행중 에러 - UnicodeDecodeError
    • streamlit_kmeans 진행중 경고 - UserWarning
    • streamlit_leisure 진행중 에러(3) - ValueError: Lengths must match to compare
    • streamlit_leisure 진행중 에러(2) - DuplicateWidgetID
    드레:
    드레:

    티스토리툴바