我正在try 将日期列转换 for each 日期之后的下一个工作日(如果该日期还不是一个工作日,在这种情况下它保持不变).为此,我使用了一个名为Busday_Offset的Numpy函数,该函数将一个Numpy数组作为其第一个参数.下面这行代码不起作用,因为pl.ol(‘Creation_Date’)不是Polars列,而是某种抽象对象.因此,不能对其调用".to_numpy"将该列转换为NumPyarray.
sales_orders.with_columns(
[
pl.lit(np.busday_offset(pl.col('creation_date').to_numpy(), 0, roll='forward'))
]
)
->;AttributeError:‘expr’对象没有属性‘to_numpy’
我知道一种解决方法是在"Sales_Orders"表上使用".get_Column"方法,如下所示:
sales_orders.with_columns(
[
pl.lit(np.busday_offset(sales_orders.get_column('creation_date').to_numpy(), 0, roll='forward'))
]
)
但这不够优雅,因此不可能嵌套"with_Columns"语句:
sales_orders.with_columns(
[
pl.lit(np.busday_offset(sales_orders.get_column('creation_date'), 0, roll='forward')).alias('order_acknowledgement_date')
]
).with_columns(
[
pl.lit(np.busday_offset(sales_orders.get_column('order_acknowledgement_date'), 2, roll='forward')).alias('ship_due_date')
]
)
->;ColumnNotFoundError:ORDER_ACKNOWLEDMENT_DATE 这确实不起作用,因为"ORDER_ACKNOWLEDMENT_DATE"不是"SALES_ORDERS"表的一部分.
So my question is: how can I transform pl.col('creation_date') into a Numpy array within a select/with_columns statement without refering to the table sales_orders directly?个