Невозможно сравнить список строк с объектом datetime - PullRequest
0 голосов
/ 21 октября 2019

Я импортировал лист из таблиц Google, в котором есть временная метка в строковом формате в столбце ['Timestamp']. Чтобы отфильтровать дату по сравнению и выбрать несколько строк, я создал переменную, которая принимает сегодняшнюю дату (diaHoy), а другую - за день до этого (diaAyer)

Затем я пытаюсь применить маскукоторый сравнивает diaHoy и diaAyer с каждым элементом timestamp, но я не могу, потому что diaHoy и diaAyer являются элементами datetime, а каждая ячейка timestamp является строкой. Я пытался применить strptime к столбцу ['Timestamp'], но не могу, потому что это список

Пример данных:

df = pd.DataFrame ({'16/10/2019 14:56:36':['A','B'],'21/10/2019 14:56:36':['C','D'],'21/10/2019 14:56:36':['E','F']

diaHoy = 2019/10/21

diaAyer = 2019/10/20

import pandas as pd

diaHoy = datetime.today().date()
diaAyer = diaHoy + timedelta(days = -1)


wks1 = gc.open_by_url("CODE_URL").sheet1
df1 = wks1.get_all_values()
df1.pop(0)
mask1 = (df1 > diaAyer) & (df1 <= diaHoy)
pegado1 = df1.loc[mask1]

Я ожидаю, что маска отфильтровываетсястроки по датам в первом столбце, сравнивая их с diaHoy и diaAyer

Фильтр: между 21/10/2019 и 20/10 / 2019

Ожидаемый результат:

df = pd.DataFrame ({'21/10/2019 14:56:36':['C','D'],'21/10/2019 14:56:36':['E','F']

1 Ответ

0 голосов
/ 21 октября 2019

вы можете преобразовать кортеж строк меток времени в список объектов datetime:

import pandas as pd 
df2 = pd.DataFrame({pd.to_datetime(key):df[key] for key in df})
...