Преобразование столбца в формате даты Excel (DDDDD.tttt) в дату и время, используя панд - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть фрейм данных с несколькими столбцами, и я хочу преобразовать один из тех столбцов, который является датой с плавающей точкой (формат даты Excel - DDDDD.ttt), в дату и время.

На данный момент значения столбцов примерно такие:

42411.0
42754.0

Поэтому я хочу преобразовать их в:

2016-02-11
2017-01-19

1 Ответ

0 голосов
/ 26 декабря 2018

Дано

# s = df['date']
s

0    42411.0
1    42754.0
Name: 0, dtype: float64

Конвертировать из Excel в дату и время, используя:

s_int = s.astype(int)
# Correcting Excel Leap Year bug.
days = pd.to_timedelta(np.where(s_int > 59, s_int - 1, s_int), unit='D')
secs = pd.to_timedelta(
    ((s - s_int) * 86400.0).round().astype(int), unit='s')

pd.to_datetime('1899/12/31') + days + secs

0   2016-02-11
1   2017-01-19
dtype: datetime64[ns]

Ссылка.

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