Polarsで特定の列を削除するには、次のようにdrop()
とexclude()
が使えます。
import polars as pl
from polars.testing import assert_frame_equal
df = pl.DataFrame({"A": [1], "B": [2], "C": [3]})
# 同じ結果になることを確認
assert_frame_equal(
df.drop("C"),
df.select(pl.exclude("C")),
)
最初、select()
を使って列を削除することに違和感を覚えました。
これは、exclude()
を「削除」と考えるから違和感が生じたのだと思います。
実際には、exclude()
は「指定列以外の列」です。指定列以外の列を選択することで、指定した列が取り除かれることになります。
drop()
は列を削除することしかできませんが、exclude()
はエクスプレッションなので続けて加工ができます。
つまり、次のように使い分けるとよさそうです。
- 削除だけしたい場合:
drop()
- 残りの列を加工する場合:
exclude()
以上