我有一只熊猫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())