복붙노트

[PYTHON] 판다 데이터 프레임에서 선택한 값이 목록에 있는지 확인하는 방법?

PYTHON

판다 데이터 프레임에서 선택한 값이 목록에 있는지 확인하는 방법?

못 생겼어.

df_cut = df_new[
             (
             (df_new['l_ext']==31) |
             (df_new['l_ext']==22) |
             (df_new['l_ext']==30) |
             (df_new['l_ext']==25) |
             (df_new['l_ext']==64)
             )
            ]

작동하지 않음 :

df_cut = df_new[(df_new['l_ext'] in [31, 22, 30, 25, 64])]

위의 "문제"에 대한 우아하고 효과적인 해결책이 있습니까?

해결법

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

    1.isin 사용

    isin 사용

    df_new[df_new['l_ext'].isin([31, 22, 30, 25, 64])]
    
  2. ==============================

    2.pd.DataFrame.query를 사용할 수 있습니다.

    pd.DataFrame.query를 사용할 수 있습니다.

    select_values = [31, 22, 30, 25, 64]
    df_cut = df_new.query('l_ext in @select_values')
    

    백그라운드에서는 최상위 수준의 pd.eval 함수를 사용합니다.

  3. from https://stackoverflow.com/questions/18250298/how-to-check-if-a-value-is-in-the-list-in-selection-from-pandas-data-frame by cc-by-sa and MIT license