将熊猫时间戳中的日期与datetime,date进行比较



我有一只熊猫df。数据框是从excel中读取的。数据框中的shortdate列包含日期。我要做的是获得上周的日期,然后拉所有的行在df之间的最后一周的日期和今天的日期。问题是df中的日期和excel文件中的日期格式不同,因此我无法正确比较它们。一个是时间戳,一个是日期类型。

在下面的情况下,我只是在df中测试一个已知的值,看看它是否有效。但这行不通。它返回一个空的df,因为shortdate列中不存在这些值。

Main.py

todays_date = datetime.today().date() #todays date
date_of_last_week = todays_date - timedelta(days=7) #this is last weeks date
print('last weeks date :', date_of_last_week)
print('last weeks type is :', type(date_of_last_week))
entry_1000 = df['shortdate'][1000]
print('1000 entry date is:',entry_1000)
print('1000 entry type is:', type(entry_1000))
print('1000 entry date just date is:',entry_1000.date())
print('1000 entry just date type is:', type(entry_1000.date()))
just_date = entry_1000.date()
print(df_eb.loc[df['shortdate'] == just_date])

结果:

last weeks date : 2021-10-15
last weeks type is : <class 'datetime.date'>
1000 entry date is: 2020-03-28 00:00:00
1000 entry type is: <class 'pandas._libs.tslibs.timestamps.Timestamp'>
1000 entry date just date is: 2020-03-28
1000 entry just date type is: <class 'datetime.date'>
Empty DataFrame
Columns: [record, old record, Status, shortdate]
Index: []

您可以使用下面的代码将shortdate列转换为datetime数据类型

df.shortdate = df.shortdate.apply(lambda x: x.date())

相关内容

  • 没有找到相关文章

最新更新