如何将熊猫日期列与硬编码日期进行比较

时间:2019-10-18 13:45:32

标签: python pandas

这是我的代码:

print (df.loc[df.DATE == '2016-02-05'])

我正在尝试将此日期与熊猫的日期进行比较。它返回空的数据框。我该怎么办?

编辑:原始数据框:

enter image description here

2 个答案:

答案 0 :(得分:1)

只需将您的字符串转换为日期时间(我想您的数据框还包含日期时间,而不是字符串),然后进行您想做的比较:

from datetime import datetime

if __name__ == "__main__":
    t = datetime.strptime('2016-02-05', '%Y-%m-%d')
    print(t)

希望答案会有所帮助,随时问问题。

如果您的DATE df列不是日期时间,而只是字符串,则以相同的方式将其转换为日期时间。

答案 1 :(得分:0)

您还需要将字符串转换为日期时间对象。

print(df)

datetime_str = '2015/02/04'
print("({}){}".format(type(datetime_str), datetime_str))

datetime_object = datetime.strptime(datetime_str, '%Y/%m/%d')
print("({}){}".format(type(datetime_object), datetime_object))

value = df.loc[df.DATE == datetime_object]
print("value =", value)

输出:

   year  month  day       DATE
0  2015      2    4 2015-02-04
1  2016      3    5 2016-03-05

(<class 'str'>)2015/02/04

(<class 'datetime.datetime'>)2015-02-04 00:00:00

value =    year  month  day       DATE
        0  2015  2      4         2015-02-04