You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Polars DataFrame中提取全局最大日期并保存到变量

获取Polars DataFrame中全局最新日期的方法

你需要从DataFrame的Values_A和Values_B两个日期列中提取全局最大的日期,这里提供几种高效的实现方式:

方法1:指定日期列取最大值后再全局比较

先单独获取两个日期列的最大值,再用Python内置的max()函数取两者中的较大值:

import polars as pl
from datetime import datetime

data = {
    "ID" : [1,2,3],
    "Values_A" : [datetime(1,1,2),datetime(1,1,3),datetime(1,1,4)],
    "Values_B" : [datetime(1,1,4),datetime(1,1,7),datetime(1,1,2)]
}

dummy_df = pl.DataFrame(data)

# 获取两个日期列的最大值,再取全局最大
date_maxes = dummy_df.select(pl.col("Values_A").max(), pl.col("Values_B").max()).row(0)
global_max_date = max(date_maxes)
print(global_max_date)
# 输出:0001-01-07 00:00:00

方法2:合并日期列后取最大值

如果你的日期列数量较多,用melt把所有日期列合并成单列,再取该列的最大值会更灵活:

# 合并日期列并提取最大值
global_max_date = dummy_df.melt(
    id_vars="ID", 
    value_vars=["Values_A", "Values_B"]  # 指定所有日期列
)["value"].max()
print(global_max_date)
# 输出:0001-01-07 00:00:00

方法3:用Polars原生表达式直接计算

利用Polars的max_horizontal和max组合,一步到位计算全局最大日期,这种方式更贴合Polars的向量化操作逻辑:

global_max_date = dummy_df.select(
    pl.max_horizontal(pl.col(["Values_A", "Values_B"])).max()
).item()
print(global_max_date)
# 输出:0001-01-07 00:00:00

以上三种方法都能得到你需要的全局最新日期,可根据实际日期列的数量和场景选择使用。

内容的提问来源于stack exchange,提问作者user24900119

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 03:52:19