我正在尝试在数据框中创建一个新的日期列。日期列的格式是这样的,例如。 '2019-02-04'
def fiscal_date(row):
if row['Date'] >= '2018-02-01' and row['Date'] < '2018-05-01':
return 'FY19 Q1'
if row['Date'] >= '2018-05-01' and row['Date'] < '2018-08-01':
return 'FY19 Q2'
if row['Date'] >= '2018-08-01' and row['Date'] < '2018-11-01':
return 'FY19 Q3'
当我尝试应用该函数时,data ['Fiscal'] = data.apply(fiscal_date,axis = 1) 出现此错误: TypeError :(在'Timestamp'和'str'“,'发生在索引0'的实例之间不支持”“> =')
答案 0 :(得分:1)
我假设错误来自此部分:if row['Date'] >= '2018-02-01'
,您在此处尝试将时间戳记row['Date']
与字符串'2018-02-01'
进行比较。 '2018-02-01'
应该转换为datetime对象:
import datetime
datetime.datetime.strptime('2018-02-01', '%Y-%m-%d')
答案 1 :(得分:0)
您可以在第二次比较中看到从未指定行。
尝试编写row['Date'] < '2018-05-01'
,而不只是['Date'] < '2018-05-01'
。
赞:
if row['Date'] >= '2018-02-01' and row['Date'] < '2018-05-01':