Python - 获取最新日期列

Posted

技术标签:

【中文标题】Python - 获取最新日期列【英文标题】:Python - get latest date column 【发布时间】:2021-04-16 13:39:22 【问题描述】:

问题:我有一个 pandas DataFrame,它有几列。有些列是日期字符串,例如:["A", "2019-12-01 00:00:00", "2020-01-01 00:00:00"]

问:在这种情况下如何选择最新的日期列,记住列位置可能在某个时间点不同? 在上面的示例中,["A", "2019-12-01 00:00:00", "2020-01-01 00:00:00"] 的最新日期将是 "2020-01-01 00:00:00"

可能的解决方案:我正在考虑可能进行正则表达式搜索以匹配数字和破折号并找到符合特定日期时间格式的字符串,使用类似 date_list = regex.match(columns) 然后将所有内容转换为日期时间,找到最大日期做max_date = date_list.max() 然后df[str(max_date)]

问:但也许有一种内置的方式或只是一种比可能的解决方案更好的方式来做到这一点?

【问题讨论】:

【参考方案1】:

使用pd.to_datetimeerrors='coerce' 参数将列名转换为日期以忽略非日期时间值,然后采用max

cols = ["A", "2019-12-01 00:00:00", "2020-01-01 00:00:00"]
pd.to_datetime(cols, errors='coerce').max()

输出:

Timestamp('2020-01-01 00:00:00')

【讨论】:

太棒了!谢谢!看起来这就是我要找的东西。让我检查一下这是否适用于我:) 我试过了,但我还要再等 2 分钟 :D 我会做的,没问题 ;)

以上是关于Python - 获取最新日期列的主要内容,如果未能解决你的问题,请参考以下文章

从 4 列函数获取最新日期

对于每个 ID,返回 r 中开始列的最早日期和结束列的最新日期

从 Python(熊猫)中的日期列获取周开始日期(星期一)?

SQL Server:从最大日期/最新日期的记录中获取数据

SQL查询获取特定日期和列中最新日期之间的数据

Pyspark - 如何检查两条记录中哪一条具有最新日期及其列值?