gpt4 book ai didi

python - 使用另一列中的值对 str.starts_with() 进行极坐标分析

转载 作者:行者123 更新时间:2023-12-03 07:58:39 26 4
gpt4 key购买 nike

例如,我有一个极坐标数据框:

>>> df = pl.DataFrame({'A': ['a', 'b', 'c', 'd'], 'B': ['app', 'nop', 'cap', 'tab']})
>>> df
shape: (4, 2)
┌─────┬─────┐
│ A ┆ B │
│ --- ┆ --- │
│ str ┆ str │
╞═════╪═════╡
│ a ┆ app │
│ b ┆ nop │
│ c ┆ cap │
│ d ┆ tab │
└─────┴─────┘

我正在尝试获取第三列 C这是 True if 列 B 中的字符串以 A 列中的字符串开头位于同一行,否则 False 。所以在上面的例子中,我期望:

┌─────┬─────┬───────┐
│ A ┆ B ┆ C │
│ --- ┆ --- ┆ --- │
│ str ┆ str ┆ bool │
╞═════╪═════╪═══════╡
│ a ┆ app ┆ true │
│ b ┆ nop ┆ false │
│ c ┆ cap ┆ true │
│ d ┆ tab ┆ false │
└─────┴─────┴───────┘

我知道 df['B'].str.starts_with()函数但传入一列会产生:

>>> df['B'].str.starts_with(pl.col('A'))
... # Some stuff here.
TypeError: argument 'sub': 'Expr' object cannot be converted to 'PyString'

有什么方法可以做到这一点?在 pandas 中,你会这样做:

df.apply(lambda d: d['B'].startswith(d['A']), axis=1)

最佳答案

此功能是 addedpolars 0.15.17

>>> df.with_columns(pl.col("B").str.starts_with(pl.col("A")).alias("C"))
shape: (4, 3)
┌─────┬─────┬───────┐
│ A | B | C │
│ --- | --- | --- │
│ str | str | bool │
╞═════╪═════╪═══════╡
│ a | app | true │
├─────┼─────┼───────┤
│ b | nop | false │
├─────┼─────┼───────┤
│ c | cap | true │
├─────┼─────┼───────┤
│ d | tab | false │
└─────┴─────┴───────┘

关于python - 使用另一列中的值对 str.starts_with() 进行极坐标分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75133458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com