Pandasのdrop func的な

Pandasのdrop()はaxisの指定によってどの方向かを決めるけど,Polarsにはその引数がないからいつもカラム単位のdropになる.じゃあ行単位のdropはどうするのかというと,filter()を使えばいいのかなと思ってる.今の所あんまり使わないけど,忘れないように.

まあ,いつものやつはこんな感じ.いらないカラムを指定すればdropしてくれる.あとpolars.drop()にはpandasでいうinplace引数はない.はず.

import polars as pl
df = pl.DataFrame({
    "id":[1,2,3,4,5],
    "name":["Jeremy", "Frank", "Janet", "Ryan", "Mary"],
    "age":[20,25,15,10,30],
    "income":[4000,7000,200,0,10000]
})

df = df.drop("name")

でもdropだと行単位の削除ができないんす,引数の型ヒントから見てもカラム名を渡すだけで.

じゃあ行を消すには,例えばidが1と2の人を消したいとすると

import polars as pl

df = pl.DataFrame({
    "id":[1,2,3,4,5],
    "name":["Jeremy", "Frank", "Janet", "Ryan", "Mary"],
    "age":[20,25,15,10,30],
    "income":[4000,7000,200,0,10000]
})
df = df.filter(
    (~pl.col("id").is_in([1, 2]))
    )

にすればいいんすよね.ただしNoneが含まれるときの挙動には気をつけないといけないみたい.(Ref.)

まああんまり中身のない話だけど,メモ程度に.

Good day