熊猫创建Fiscar QTR /年的日期列

时间:2019-09-20 08:29:33

标签: python pandas datetime

我正在尝试在数据框中创建一个新的日期列。日期列的格式是这样的,例如。 '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'的实例之间不支持”“> =')

2 个答案:

答案 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':