복붙노트

[PYTHON] 판다에 ELIF로 열 만들기

PYTHON

판다에 ELIF로 열 만들기

의문

다른 두 열의 값을 기반으로 새 DataFrame 열을 만드는 방법을 알아내는 데 어려움이 있습니다. / elif / else 로직을 사용해야합니다. 그러나 모든 문서와 예제는 if / else 논리 만 보여줍니다. 다음은 내가하려는 일의 샘플입니다.

암호

df['combo'] = 'mobile' if (df['mobile'] == 'mobile') elif (df['tablet'] =='tablet') 'tablet' else 'other')

나는 where ()도 사용하고있다. 올바른 구문을 찾는 데 어려움이 있습니다.

해결법

  1. ==============================

    1.분기 문이 여러 개인 경우 행을 허용 한 다음 축 = 1을 따라 적용하는 것이 가장 좋습니다. 일반적으로 행을 반복하는 속도가 훨씬 빨라집니다.

    분기 문이 여러 개인 경우 행을 허용 한 다음 축 = 1을 따라 적용하는 것이 가장 좋습니다. 일반적으로 행을 반복하는 속도가 훨씬 빨라집니다.

    def func(row):
        if row['mobile'] == 'mobile':
            return 'mobile'
        elif row['tablet'] =='tablet':
            return 'tablet' 
        else:
            return 'other'
    
    df['combo'] = df.apply(func, axis=1)
    
  2. ==============================

    2.나는 다음과 같은 시도를했고 그 결과는 훨씬 빨랐다. 희망은 다른 사람들에게 도움이된다.

    나는 다음과 같은 시도를했고 그 결과는 훨씬 빨랐다. 희망은 다른 사람들에게 도움이된다.

    df['combo'] = 'other'
    df.loc[df['mobile'] == 'mobile', 'combo'] = 'mobile'
    df.loc[df['tablet'] == 'tablet', 'combo'] = 'tablet'
    
  3. from https://stackoverflow.com/questions/18194404/create-column-with-elif-in-pandas by cc-by-sa and MIT license