実現したいこと
pandasデータフレームのある範囲の複数列から、listに含まれない文字がある列だけを抽出したいです。
下記のように、query を使ってできるのですが、対象の列数が多くなると全て記載するのが大変なのと、列の数が変わる場合に対応できないので、対象列をスライスにして、抽出したいのです。
いろいろ調べて分かりませんでした。どなたか教えていただけないでしょうか?
該当のソースコード
python
1import pandas as pd 2 3list = ['A','B'] 4df1 = pd.DataFrame([['一郎',1, 'A',2], ['二郎',3, 4,2], ['三郎','A',5,4],['四郎',4,3,'B']], columns=['名前','x', 'y','z']) 5df1 6 7 名前 x y z 80 一郎 1 A 2 91 二郎 3 4 2 102 三郎 A 5 4 113 四郎 4 3 B 12 13x列以降の列に、listに含まれない行を抽出したいです。queryを使うと下のようになるかと思います 14 15df2 = df1.query('x not in @list and y not in @list and z not in @list') 16df2 17 18 名前 x y z 191 二郎 3 4 2 20 21列数が変わる場合などに対応したく、上記の列の指定をスライスで行うようにしたいのですが、良い方法はないのでしょうか? 22 23

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。