#python #pandas #date #unix #indexing
Вопрос:
Как бы я мог написать функцию, в которой она показывает диапазон значений, в которых временная метка unix Unix
и Dates
не совпадают, Unix
и Dates
являются коррелированными. В нем будут перечислены все последовательные несоответствия в каждой строке. Так 1444311750000
и '2015-10-08 13:42:00'
не совпадают, а также даты, которые продолжаются до 1634774520000
и 2021-10-21 00:07:00
import numpy as np import pandas as pd def compare(datas): Unix = np.array(datas['Unix Timestamp']) Dates = np.array(datas['date']) Unix_pd = pd.to_datetime(Unix, unit='s', origin='unix') dates_pd = pd.to_datetime(dates) s = pd.Series(dates_pd.difference(Unix_pd)) groups_diff_ne_1min = s.diff().fillna(pd.Timedelta(seconds=60)) != pd.Timedelta(seconds=60) groups = groups_diff_ne_1min.cumsum() result = s.groupby(groups).agg(['first', 'last', 'size']) print(result) data = {'Unix Timestamp': [1444311600000, 1444311660000, 1444311750000, 1634774460000, 1634774520000, 1634774580000, 14443117200000], 'date': ['2015-10-08 13:40:00', '2015-10-08 13:41:00', '2015-10-08 13:42:00', '2021-10-21 00:05:00', '2021-10-21 00:07:00', '2021-10-21 00:03:00', '2021-10-21 01:13:00'],
Ожидаемый Результат:
['2015-10-08 13:42:00 - 2021-10-21 00:07:00'] ['2021-10-21 01:13:00']