用值覆盖时间序列的切片



我有一些pl.DataFrame对象形式的时间序列数据,该对象具有日期时间列和数据列。我想通过用值覆盖数据来更正不同时间范围内发生的数据错误。

现在在pandas中,可以使用日期时间作为索引,并对该时间范围进行切片并分配给它,就像一样

df.loc[start_dt_string:end_dt_string, column_name] = some_val

作为polars的新手,我很难弄清楚如何表达这一点。我尝试用.filter.is_between选择行,但这当然不支持赋值。如何使用polars进行此操作?

很明显,我在文档中错过了这个,所以RTFM来救我。在Coming from Pandas指南的相应部分中,几乎逐字逐句地介绍了这种情况:

df.with_column(
pl.when(pl.col("c") == 2)
.then(pl.col("b"))
.otherwise(pl.col("a")).alias("a")
)

上面的pandas示例使用时间范围切片,因此为了完整起见,我将添加完全相同的polars代码:


df.with_column(
pl.when(pl.col(dt_column_name).is_between(
datetime(start_dt_string),
datetime(end_dt_string),
include_bounds=True
).then(pl.lit(some_val))
.otherwise(pl.col(column_name))
.alias(column_name)
)

最新更新