The column is of type str with format like 2018-10-10, and has no nan values.
print(df['col'].isna().sum()) # 0
print(df['col'].max()) # nan
min() on the other hand shows the correct value
print(df['col'].min()) # 2018-01-01
Why is max() reporting nan value?