Колонка даты создания панд для Fiscar QTR / год - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь создать новый столбец даты в моем фрейме данных.Столбец даты отформатирован как таковой, напр.'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 ]

1 голос
/ 20 сентября 2019

Я предполагаю, что ошибка исходит из этой части: if row['Date'] >= '2018-02-01', где вы пытаетесь сравнить row['Date'], который является меткой времени, с '2018-02-01', который является строкой.'2018-02-01' следует преобразовать в объект даты и времени:

import datetime

datetime.datetime.strptime('2018-02-01', '%Y-%m-%d')

0 голосов
/ 20 сентября 2019

Вы можете видеть, что во втором сравнении вы никогда не определяете строку.

Попробуйте написать row['Date'] < '2018-05-01' вместо ['Date'] < '2018-05-01'.

Как это:

if row['Date'] >= '2018-02-01' and row['Date'] < '2018-05-01':
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...