1. ホーム
  2. python

[解決済み] 列の値が設定された値のリストに含まれている場合、データフレームの行をフィルタリングする [重複] 。

2022-03-18 03:36:37

質問

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が「0」である行をフィルタリングすることができます。 '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は上記のコマンドを受け付けないので、どのようにターゲットを達成するのでしょうか?

どのように解決するのですか?

を使用します。 isin メソッドを使用します。

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