np其中:无法将datetime.date与unicode比较

我正在尝试在数据框中进行>>> fd = flatDict( ... { ... 'person': { ... 'sexe': 'male',... 'name': { ... 'first': 'jacques',... 'last': 'dupond' ... } ... } ... } ... ) >>> fd {'person.sexe': 'male','person.name.first': 'jacques','person.name.last': 'dupond'} >>> fd['person'] = {'name': {'nickname': 'Bob'}} >>> fd {'person.sexe': 'male','person.name.last': 'dupond','person.name.nickname': 'Bob'} >>> fd['person.name'] = {'civility': 'Dr'} >>> fd {'person.sexe': 'male','person.name.nickname': 'Bob','person.name.civility': 'Dr'} 并将日期从2017年或更晚到2017年以下的日期分开。 我需要将列“ Creation_Date”(日期格式为“%d /%m /%Y”)与值“ 01/01/2017”进行比较。 我不断收到相同的错误,即:np.where

我已使用函数can't compare datetime.date to unicode将“ Creation_Date”列转换为日期格式。然后,我将值“ 01/01/2017”转换为日期格式,以将其与“ Creation_Date”列中的值进行比较。

这是实际的代码:

strftime

也尝试过:

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')

在这些比较之间,我仍然无法获得正确的格式:无法将datetime.date与unicode比较。 我需要获得一个Final_Date列,以将Creation_Date与2017年或2017年及以后的日期区分开来。

可以帮我吗?

最诚挚的问候。

qs1012 回答:np其中:无法将datetime.date与unicode比较

从您的代码中,

my_df['temp_date'] = pd.to_datetime(my_df['Creation_Date'],dayfirst=True).dt.strftime('%Y-%m-%d')

然后my_df['temp_date']是字符串,因此您无法真正将它们与都是dt.date(2017,1,1)类型的dt.datetime.strptime('01/01/2017','%d/%m/%Y')datetime进行比较。

另一方面,pandas允许在pandas.Datetime类型和日期字符串之间进行比较。因此,您可以摆脱dt.strftime并进行比较:

my_df['temp_date']=pd.to_datetime(my_df['Creation_Date'],dayfirst=True)
my_df['temp_date'] >= '2017-01-01'
本文链接:https://www.f2er.com/3144037.html

大家都在问