

添付のように複数の値がカンマ区切りで同じカラムに入っているテーブルから条件に完全一致する行を抽出したいです。

「str.contains」や「in」を使った使った実装を試してみましたが、例えば17が含まれているレコード（a,b）のみ抽出したいのに、部分的に17が含まれているcとdも抽出されてしまい困っています。  
良い方法をご存知でしたらご教示くださいませ。

[![画像の説明をここに入力](https://i.stack.imgur.com/JJK3X.png)](https://i.stack.imgur.com/JJK3X.png)


CC BY-SA 4.0
2022-06-05T10:01:36.097
89236
2022-06-05T11:47:37.277
2022-06-05T10:13:50.277
42369
42369
question
python python3
複数の値が入ったカラムから条件一致する行を探す

[code]

    import pandas as pd
    
    df = pd.DataFrame({
        'product': ['a', 'b', 'c', 'd'],
        'column_a': ['17,117,217', '17', '117', '217'],
    })
    
    print(df[df['column_a'].str.contains(r'\b17\b')])
    
    #
      product    column_a
    0       a  17,117,217
    1       b          17
    
[/code]

#### `pandas.Series.str.split` \+ `set.issubset`

[code]

    print(df[df['column_a'].str.split(',').map({'17'}.issubset)])
    
[/code]


CC BY-SA 4.0
2022-06-05T10:30:03.110
89237
2022-06-05T11:47:37.277
2022-06-05T11:47:37.277
47127
47127
89236
answer


リストにして調べる方法

[code]

    import pandas as pd
    df = pd.DataFrame({'product': ['a', 'b', 'c', 'd'],
                       'column_a': ['17,117,217', '17', '117', '217']})
    
    df[df['column_a'].map(lambda x: '17' in x.split(','))]
    
[/code]


CC BY-SA 4.0
2022-06-05T11:15:52.167
89239
2022-06-05T11:15:52.167
43025
89236
answer