Pandas提取DataFrame最大日期未返回正确值问题求助
解决Pandas DataFrame提取最新日期(不修改原列格式)的问题
你的判断完全正确——问题出在DATE列是字符串类型。直接对字符串调用max()时,Pandas是按字典序比较的:'31/12/2021'的首字符'3'比'11/09/2022'的'1'大,所以会被误判为“最新日期”。
不用修改原列格式,用以下方法就能拿到真正的最新日期:
临时转换为datetime类型计算,再转回原字符串格式
import pandas as pd # 把DATE列临时转为datetime(指定格式为DD/MM/YYYY),取最大值后转回原格式 maxdate = pd.to_datetime(df['DATE'], format='%d/%m/%Y').max().strftime('%d/%m/%Y') print(maxdate) # 输出:'11/09/2022'这个操作不会改动原DataFrame的DATE列,只是临时生成datetime对象做比较,最后输出的还是你需要的字符串格式。
若存在格式不统一的日期,加容错处理
# 无法转换的日期会被设为NaT,不影响正常日期的最大值计算 temp_dates = pd.to_datetime(df['DATE'], format='%d/%m/%Y', errors='coerce') maxdate = temp_dates.max().strftime('%d/%m/%Y')
内容的提问来源于stack exchange,提问作者Spooked
相关产品推荐
相关产品推荐

