Как я могу получить все строки, добавленные в последнюю минуту в пандах. ЕСЛИ есть какое-либо значение даты в течение последней минуты, я должен получить его еще не.
Я использую приведенный ниже код, и он не дает мне никаких ошибок, но возвращает ожидаемое значение.
import datetime
created_time = datetime.datetime.now() - datetime.timedelta(minutes=1)
old_objects = data[data['Date'] > created_time]
Я получаю значения ниже
но я должен получить только следующее: -
created_time = datetime.datetime.utcnow() - datetime.timedelta(minutes=1)
data = data[(data['Date'] > created_time) & (data['Date'] <datetime.datetime.utcnow())]
Попытайтесь ограничить диапазон дат, используя:
old_objects = data[(data['Date'] > created_time) & (data['Date'] < datetime.datetime.now())]
Я переделал ваши тесты, и здесь он работал правильно.
Вы должны использовать согласованные часовые пояса. И вы должны использовать объекты Pandas datetime
с данными Pandas. Вы можете обеспечить согласованность, используя pd.to_datetime
с tz_convert
и pd.Timestamp.utcnow
: -
Поэтому попробуйте следующее:
created_time = pd.Timestamp.utcnow() - pd.DateOffset(minutes=1)
data['Date'] = pd.to_datetime(data['Date']).tz_convert('UTC')
pd.to_datetime(data['Date'], errors='coerce').tz_convert('UTC')
данные, например, попробуйте pd.to_datetime(data['Date'], errors='coerce').tz_convert('UTC')
print(created_time)
? Что ты видишь?