преобразование даты и времени в pandas, добавляющее .0 к значениям столбца - PullRequest
0 голосов
/ 07 мая 2019

У меня есть файл Excel, который правильно выводит столбец datetime со временем, которое мне не нужно. Мне нужно создать столбец month, квартал, год и year_quarter, полученный из столбца datetime. Но вместо того, чтобы получить результаты, которые я успешно получил в предыдущих итерациях, я получаю нечетное «.0» в пределах значений в каждом столбце.

В прошлом я делал это без каких-либо проблем, основываясь на простой функции, подобной приведенной ниже:

def add_date_periods(df):
    #df['ddate'] = pd.to_datetime(df['ddate'])
    df['ddate'] = df['ddate'].dt.date
    df['dyear'] = (df['ddate'].dt.year).apply(str)
    df['dqtr'] = (df['ddate'].dt.quarter).apply(str)
    df['dmonth'] = (df['ddate'].dt.month).apply(str)
    df['yrqtr'] = df['dyear'].apply(str) + 'Q' + df['dqtr'].apply(str)

Ожидаемые значения dtype объекта для каждого столбца {'dyear': '2018', 'dqtr': '3', 'dmonth': '9', 'yrqtr': '2018Q3'}

Фактические значения объекта dtype возвращены {'dyear': '2018', 'dqtr': '3.0', 'dmonth': '9.0', 'yrqtr': '2018.0Q3.0'}

Я думал, что .replace ('. 0', '') может решить мою проблему, но это сократило год до двух последних цифр ('18', '18Q3'), которые я затем попытался добавить перед столбцы года и квартала года, но столкнулись с другой проблемой, когда большая часть значений месяца преобразована в 0. Я в растерянности и просто не могу понять, почему эти проблемы сохраняются даже после изменения порядка операций (от str до dt и наоборот) несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...