Я работаю над этой проблемой уже несколько часов.Это должно быть небольшое исправление, но почему-то я слепой ..
Эта тема не решила мою проблему.
Это мои данные:
Date Server
2019-02-13 A
2019-02-13 B
2019-02-13 B
2019-02-17 A
2019-02-17 B
2019-02-17 C
2019-02-19 C
2019-02-19 D
Мне нужно получить список серверов для соответствующего диапазона дат.Я попробовал этот код:
df['Date'] = pd.to_datetime(df['Date'], format='%Y%m%d').apply(lambda x: x.strftime(format='%Y-%m-%d'))
df = df.set_index(df['Date'])
### This formatting changes the cell content from a format like 20190217 to the
one represented above. Maybe there is already an error right here.###
start_date = pd.to_datetime('20190212', format='%Y%m%d').strftime(format='%Y-%m-%d')
end_date = pd.to_datetime('20190217', format='%Y%m%d').strftime(format='%Y-%m-%d')
Однако операторы print дают правильный результат, если я пишу даты явно.Однако в моей программе мне нужно передать данные по датам start_date и end_date.
print(df[df.Date.between('2019-02-12','2019-02-17')].Server.unique())
print(df.loc['2019-02-12':'2019-02-17'].Server.unique())
print(df.loc[start_date : end_date].Server.unique())
Вывод:
['A' 'B' 'C'] - correct
['A' 'B' 'C'] - correct
['A' 'B' 'C' 'D'] - incorrect
Какие изменения в моем коде нужно применить?
Спасибо за помощь!