Polarsの文字列操作
from PolarsのExpression
https://docs.pola.rs/user-guide/expressions/strings/
https://docs.pola.rs/api/python/dev/reference/expressions/string.html
.str
code:py
out = df.select(
pl.col("animal"),
pl.col("animal").str.contains("cat|bit").alias("regex"),
pl.col("animal").str.contains("rab$", literal=True).alias("literal"),
pl.col("animal").str.starts_with("rab").alias("starts_with"),
pl.col("animal").str.ends_with("dog").alias("ends_with"),
)
カラムの内容 == "hoge"みたいなのも、基本的にpl.str.contains()を使う
正規表現も書けるし
str.extract
str.extract_all
str.replace
str.replace_all
pl.concat_str()
pl.Expr.str.split
https://docs.pola.rs/api/python/stable/reference/expressions/api/polars.Expr.str.split.html
区切り文字でsplitする
返り値はlist
pl.Expr.str.split_exact
https://docs.pola.rs/api/python/stable/reference/expressions/api/polars.Expr.str.split_exact.html
区切り文字でsplitする
splitする上限数を指定する
返り値はPolarsのStruct型
structなおかげで、分割したものをそのままカラムに分けられる
code:py
df.with_columns(
pl.col("x")
.str.split_exact("_", 1)
.struct.rename_fields("first_part", "second_part") # カラムに分ける
.alias("fields")
).unnest("fields")
Polarsで空文字判定