본문 바로가기
Python/Python FAQ

Python 열의 값이 설정된 값 목록에 있는 경우 데이터프레임 행 필터링하기 [중복], Filter dataframe rows if value in column is in a set list of values [duplicate]

by 베타코드 2023. 9. 15.
반응형

질문


나는 Python pandas DataFrame rpt를 가지고 있습니다:

rpt
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 47518 entries, ('000002', '20120331') to ('603366', '20091231')
Data columns:
STK_ID                    47518  non-null values
STK_Name                  47518  non-null values
RPT_Date                  47518  non-null values
sales                     47518  non-null values

나는 주식 ID가 '600809'인 행만 필터링 할 수 있습니다: rpt[rpt['STK_ID'] == '600809']

<class 'pandas.core.frame.DataFrame'>
MultiIndex: 25 entries, ('600809', '20120331') to ('600809', '20060331')
Data columns:
STK_ID                    25  non-null values
STK_Name                  25  non-null values
RPT_Date                  25  non-null values
sales                     25  non-null values

그리고 나는 ['600809','600141','600329']와 같은 몇 가지 주식의 모든 행을 얻고 싶습니다. 즉, 다음과 같은 구문을 원합니다:

stk_list = ['600809','600141','600329']

rst = rpt[rpt['STK_ID'] in stk_list] # 이는 pandas에서 작동하지 않습니다

pandas가 위의 명령을 허용하지 않기 때문에 목표를 어떻게 달성할 수 있을까요?


답변


Use the isin method:

rpt[rpt['STK_ID'].isin(stk_list)]

isin 메서드를 사용하세요:

rpt[rpt['STK_ID'].isin(stk_list)]

반응형

댓글