73730


以下のようなpandas DataFrameがあります。

[code]

    import pandas as pd
    import numpy as np
    df=pd.DataFrame(np.arange(30).reshape(10,3),columns=pd.Index(['one','two','three']))
    
[/code]

twoカラムで数値が22の行を取得するには以下のようにしています。

[code]

    df[df['two']==22]
    
[/code]

これは易しいのですが、  
twoカラムで数値が10と22と28といった複数行を取得するにはどうすればいいでしょうか？  
ご指導よろしくお願いいたします。


CC BY-SA 4.0
2019-12-30T13:59:28.067
61895
2022-04-24T05:03:00.400
2021-02-01T04:01:50.127
754
34450
question
python pandas
pandas DataFrameから特定列の値が複数の候補のいずれかで抽出する方法


下記のように、 `isin` を用いると実現できます。

[code]

    In [1]: import pandas as pd                                                    
       ...: import numpy as np                                                     
       ...: df=pd.DataFrame(np.arange(30).reshape(10,3),columns=pd.Index(['one','two','three']))
       ...: df
       one  two  three
    0    0    1      2                                                             
    1    3    4      5
    2    6    7      8
    3    9   10     11
    4   12   13     14
    5   15   16     17
    6   18   19     20
    7   21   22     23                                                             
    8   24   25     26
    9   27   28     29              
    
    In [4]: df[df['two'].isin((22, 25, 28))]
    Out[4]: 
       one  two  three
    7   21   22     23
    8   24   25     26
    9   27   28     29
    
[/code]


CC BY-SA 4.0
2021-02-01T07:24:32.143
73730
2021-02-01T07:30:53.680
2021-02-01T07:30:53.680
3060
754
61895
answer