【发布时间】:2019-11-07 14:30:20
【问题描述】:
我正在尝试在数据框中执行 np.where 并将日期从 2017 年或以上和 2017 年以下分开。
我需要将列“Creation_Date”(日期格式“%d/%m/%Y”)与值“01/01/2017”进行比较。
我不断收到同样的错误:can't compare datetime.date to unicode
我已使用函数strftime 将“Creation_Date”列转换为日期格式。然后我将值 '01/01/2017' 转换为日期格式,以将其与“Creation_Date”列中的值进行比较。
这是实际代码:
my_df['temp_date'] = pd.to_datetime(my_df['Creation_Date'], dayfirst=True).dt.strftime('%Y-%m-%d')
t1 = my_df['temp_date'] >= dt.date(2017, 1, 1)
my_df['Final_Date'] = np.where(t1,'2017 or more','Below 2017')
也试过了:
my_df['temp_date'] = pd.to_datetime(my_df['Creation_Date'], dayfirst=True).dt.strftime('%Y-%m-%d')
t1 = my_df['temp_date'] >= dt.datetime.strptime('01/01/2017','%d/%m/%Y')
my_df['Final_Date'] = np.where(t1,'2017 or more','Below 2017')
我仍然无法在这些比较之间找到正确的格式:无法将 datetime.date 与 unicode 进行比较。 我需要获取一个 Final_Date 列,以区分 Creation_Date 与 2017 年或更多和 2017 年以下。
你能帮帮我吗?
最好的问候。
【问题讨论】:
标签: python pandas python-2.7 dataframe