Как быстро сопоставить NumpyArray строки datetime с переменной datetime внутри функции Numpy.Where()Python

Программы на Python
Гость
Как быстро сопоставить NumpyArray строки datetime с переменной datetime внутри функции Numpy.Where()

Сообщение Гость »

Добрый день, программисты!
У меня есть программа, в которой мне нужно отсортировать большой набор данных.
Этот набор данных содержит следующие столбцы:



Серийные сериалы
Info_Date
Login_Date




SNXXXXXX
12.10.2023 12:50
14.12.2023 14: 30


SNXXXXX1
29.02.2024 13:40
02.10.2024 10:00


SNXXXXX4

Неверная дата


Мне нужно проверить, содержит ли Info_Date или Login_date строку «Недопустимая дата», или проверить, содержит ли >Info_Date старше трех месяцев. Или если Login_Date старше тридцати дней.

В первом случае я использовал numpy.where( ) и у меня не возникло проблем, поскольку данные уже были в строковом формате, но в других случаях у меня возникала большая проблема, поскольку каждый элемент NumpyArray
является string, его нельзя сопоставить со значением даты и времени внутри numpy.where().

Вот код, который я использовал в первом сценарии противостояния:

Код: Выделить всё

import pandas as pd
from datetime import datetime, timedelta
import time
import numpy as np
source_data = pd.read_excel("./documents/data.xlsx")

three_months_ago = datetime.now() - timedelta(days=90)
thirty_days_ago = datetime.now() - timedelta(days=30)

#Get the values that are "Invalid date"
print(source_data.iloc[
np.where(source_data["Login_Date"].values == "Invalid date")])
Я попробовал преобразовать данные в формат даты и времени с помощью функции strptime() следующим образом:

Код: Выделить всё

format = str("%d/%m/%Y %H:%M")
print(np.where(datetime.strptime(source_data["Login_Date"], format) < thirty_days_ago))
Ожидаемый результат должен быть следующим:



Сериалы
Info_Date
Login_Date




SNXXXXX1
29/02/ 2024 13:40
02.10.2024 10:00


/дел>

Подробнее здесь: https://stackoverflow.com/questions/781 ... e-variable

Вернуться в «Python»