편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2020.06.04

    사용자정의 함수 사용 중 append error


    def show_df(column,new_colnames = ['구분'],dataframe = one):
        df = dataframe[column].value_counts().reset_index()
        new_names = new_colnames
        new_names.append('카운트수')
        df.columns = new_names
        df['비중'] = df['카운트수'].apply(lambda x : round(x/df['카운트수'].sum(),2)*100)
        return df
    

    EDA를 진행하면서 카운트수와 비중을 계속해서 DataFrame에 넣어가면서 확인하고 싶어서 함수를 작성했습니다. 각 변수마다 구분자는 고정될 것으로 추정해서 기본값을 지정해주었는데요.
    그런데 함수 내에서 append를 진행하는 과정에서
    colnames 에 계속 '카운트수'가 계속 추가되어
    colnames =['구분','카운트수','카운트수' ...] 형태가 되어 에러가 발생합니다.

    다른 방법으로 함수를 작성하여 해결했으나
    에러가 발생한 원인 및 해결책이 궁금해서 질문을 올리게되었습니다.

    제가 추정하는 원인은 함수 내에서 값이 초기화 되지 않았기 때문이라고 생각했는데요.
    그래서 del new_colnames, new_colnames = [] 방식으로 초기화를 해보려 했으나 먹히지 않았습니다.

    혹시 어떤 이유에서 이런 상황이 발생하는 건지 알려주시면 감사하겠습니다.

  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.06.04

    사용자정의 함수 사용 중 append error


    def show_df(column,new_colnames = ['구분'],dataframe = one):
        df = dataframe[column].value_counts().reset_index()
        new_names = new_colnames
        new_names.append('카운트수')
        df.columns = new_names
        df['비중'] = df['카운트수'].apply(lambda x : round(x/df['카운트수'].sum(),2)*100)
        return df
    

    EDA를 진행하면서 카운트수와 비중을 계속해서 DataFrame에 넣어가면서 확인하고 싶어서 함수를 작성했습니다. 각 변수마다 구분자는 고정될 것으로 추정해서 기본값을 지정해주었는데요.
    그런데 함수 내에서 append를 진행하는 과정에서
    colnames 에 계속 '카운트수'가 계속 추가되어
    colnames =['구분','카운트수','카운트수' ...] 형태가 되어 에러가 발생합니다.

    다른 방법으로 함수를 작성하여 해결했으나
    에러가 발생한 원인 및 해결책이 궁금해서 질문을 올리게되었습니다.

    제가 추정하는 원인은 함수 내에서 값이 초기화 되지 않았기 때문이라고 생각했는데요.
    그래서 del new_colnames, new_colnames = [] 방식으로 초기화를 해보려 했으나 먹히지 않았습니다.

    혹시 어떤 이유에서 이런 상황이 발생하는 건지 알려주시면 감사하겠습니다.