df = pl.DataFrame(
{
"a": [
"name=John, name=Billy",
"name=Jeff",
"name=Taylor",
]
}
)
df.select(
pl.col("a").str.extract(r"name=(\w+)", 1),
)
我会得到一个带有
John, Jeff, Taylor
的系列。我想知道是否有办法 extract_all
(?) 并同时获得 Billy
?我意识到这会改变结果序列的维度,但只是想知道这种方法是否可用。
str.extract_all
方法
df.select(
pl.col("a")
.str.extract_all(r"name=\w+")
.explode()
.str.extract(r"name=(\w+)")
.alias("names")
)
shape: (4, 1)
┌────────┐
│ names │
│ --- │
│ str │
╞════════╡
│ John │
│ Billy │
│ Jeff │
│ Taylor │
└────────┘
你可以尝试:
>>> df.select(
pl.col('a').str.split(', ').explode()
.str.extract('name=(\w+)')
)
shape: (4, 1)
┌────────┐
│ a │
│ --- │
│ str │
╞════════╡
│ John │
│ Billy │
│ Jeff │
│ Taylor │
└────────┘