无法将字符串列表与日期时间对象进行比较

问题描述 投票:0回答:1

我从Google工作表导入了一个工作表,该工作表恰好在['Timestamp']列中具有字符串格式的时间戳。为了通过比较过滤日期并选择一些行,我创建了一个变量,该变量采用今天的日期(diaHoy),另一个取自前一天(diaAyer)

然后,我尝试应用一个将diaHoy和diaAyer与每个时间戳元素进行比较的掩码,但是我不能这样做,因为diaHoy和diaAyer是datetime元素,并且每个时间戳单元格都是一个字符串。我已经尝试将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']
python pandas datetime gspread
1个回答
0
投票

您可以将时间戳记字符串的元组转换为日期时间对象的列表:

import pandas as pd 
df1 = ('16/10/2019 14:56:36', '16/10/2019 14:57:02', '16/10/2019 14:57:15')
df2 = pd.to_datetime(df1)
© www.soinside.com 2019 - 2024. All rights reserved.