У меня есть данные, например:
Etc.. Теперь я могу найти максимальные и минимальные даты как
df.Sampled_Date.max()
df.Sampled_Date.min()
Но как найти вторую самую последнюю дату. т.е. 2/28/2016 в кадре данных pandas Python.
Вы также можете использовать .argsort()
import pandas as pd
# Generate dates
dates = pd.Series(pd.date_range(start='1/1/2017', periods=5, freq=pd.offsets.MonthEnd(3)))
# Random order
dates = dates.sample(frac=1, random_state=0)
# Get the second 'max' date
dates[dates.argsort() == (len(dates)-2)] # 3 2017-10-31
Удостоверьтесь, что ваши даты указаны в датах:
df['Sampled_Date'] = pd.to_datetime(df['Sampled_Date'])
Затем отбросьте дубликаты, возьмите nlargest(2)
и возьмите последнее значение:
df['Sampled_Date'].drop_duplicates().nlargest(2).iloc[-1]
# Timestamp('2016-02-28 00:00:00')