为什么pandas max函数不返回正确的max日期?

为什么pandas max函数不返回正确的max日期?,pandas,dataframe,date,datetime,max,Pandas,Dataframe,Date,Datetime,Max,我想从数据帧中的列中获取最大日期,但结果是错误的? 我做错了什么 df = pd.DataFrame.from_dict({'date':['31.12.2014', '03.10.2015','02.01.2013', '05.01.2013', '14.10.2015']}) df.date.max()的结果是'31.12.2014',而不是'14.10.2015'?为什么?如果希望将字符串作为datetime对象进行比较,这应该会有所帮助 df['date'].astype('datet

我想从数据帧中的列中获取最大日期,但结果是错误的?
我做错了什么

df = pd.DataFrame.from_dict({'date':['31.12.2014', '03.10.2015','02.01.2013', '05.01.2013', '14.10.2015']})

df.date.max()
的结果是
'31.12.2014'
,而不是
'14.10.2015'
?为什么?

如果希望将字符串作为datetime对象进行比较,这应该会有所帮助

df['date'].astype('datetime64[ns]').max()

首先将日期列转换为日期时间格式,然后检查最大值或最小值

import pandas as pd

df = pd.DataFrame.from_dict({'date':['31.12.2014', '03.10.2015','02.01.2013', '05.01.2013', '14.10.2015']})

# Convert to datetime format
df['date'] = pd.to_datetime(df['date'])

# Print max value
print(df['date'].max())

看起来它正在将它们作为字符串进行排序,而不知道这些字符串表示日期?
pd.to_datetime(df['date'],errors='concurve',dayfirst=True)。max()执行此任务。