Утилита для создания новых столбцов по каждой части столбца даты и времени - PullRequest
0 голосов
/ 19 апреля 2020

Я довольно новичок в python и программировании. Таким образом, я все еще пишу некоторые общие служебные функции, которые позже планирую всегда использовать снова. В этом случае нужно извлечь каждую часть столбца datetime (год, месяц, день, час и т. Д. c.) И поместить его в новые столбцы. Чтобы убедиться, что разные столбцы даты и времени в фрейме данных не перепутаны, я хотел бы взять оригинальное имя столбца в новые столбцы. Я получил следующую функцию:

def datetime_to_cols(df, col_to_convert):

    col_name_lst = list(df.columns)
    i = col_name_lst.index(col_to_convert)

    df[df[col_name_lst[i]]+'year'] = df[col_to_convert].dt.year
    df[df[col_name_lst[i]]+'month'] = df[col_to_convert].dt.month
    df[df[col_name_lst[i]]+'day'] = df[col_to_convert].dt.day

    df[df[col_name_lst[i]]+'hour'] = df[col_to_convert].dt.hour
    df[df[col_name_lst[i]]+'minute'] = df[col_to_convert].dt.minute
    df[df[col_name_lst[i]]+'second'] = df[col_to_convert].dt.second

Но я получаю следующую ошибку:


datetime_to_cols(train, dateCreated)
datetime_to_cols(train, dateCreated)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-79-c5bd61d3b95b> in <module>
----> 1 datetime_to_cols(train, dateCreated)

NameError: name 'dateCreated' is not defined

dateCreated - имя столбца, который содержит метку времени в формате datetime в df train. Кто-нибудь может мне помочь?

Большое спасибо уже заранее!

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Аргумент должен быть передан следующим образом:

datetime_to_cols(train, "dateCreated")
0 голосов
/ 19 апреля 2020

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

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