小编典典

如果列中的值在一组值列表中,则过滤数据框行

all

我有一个 Python 熊猫数据框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] # this does not works in pandas

既然 pandas 不接受上面的命令,那如何达到目标呢?


阅读 131

收藏
2022-03-10

共1个答案

小编典典

使用isin方法:

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

2022-03-10