Python - передать столбец серии в метод, ожидающий datetime.datime - PullRequest
0 голосов
/ 14 июня 2019

У меня есть следующий метод, который я использую в этом сообществе для преобразования даты и времени в юлианский:

def get_julian_datetime(date):
    if not isinstance(date, dt.datetime):
        raise TypeError('Invalid type for parameter "date" - expecting datetime')
    elif date.year < 1801 or date.year > 2099:
        raise ValueError('Datetime must be between year 1801 and 2099')

    # Perform the calculation
    julian_datetime = 367 * date.year - int((7 * (date.year + int((date.month + 9) / 12.0))) / 4.0) + int(
        (275 * date.month) / 9.0) + date.day + 1721013.5 + (
                              date.hour + date.minute / 60.0 + date.second / math.pow(60,
                                                                                      2)) / 24.0 - 0.5 * math.copysign(
        1, 100 * date.year + date.month - 190002.5) + 0.5

    return julian_datetime

И я пытаюсь преобразовать дату и время из моего кадра данных в юлианский.Однако, поскольку я передаю тип «pandas.core.series.Series», возвращается первое исключение.

Код, который я пытаюсь использовать, следующий:

df[new_datetime] = get_julian_datetime(df['old_datetime'])

И он возвращает это (что ожидается):

TypeError: Invalid type for parameter "date" - expecting datetime

Как я могу преобразовать эточтобы получить новый столбец с юлианским форматом на основе метода, созданного выше?

Спасибо!

...