Применение пользовательской функции в dask возвращает неверное значение - PullRequest
0 голосов
/ 05 мая 2020

Я хочу применить настраиваемую функцию к столбцу фрейма даты dask. Вот пример: «

import dask.dataframe as dd
from datetime import datetime
import pandas as pd

df = pd.DataFrame({'x': ['2020-01-01 15:00:00', '2020-01-01 16:00:00', '2020-01-01 17:00:00']})

ddf = dd.from_pandas(df, npartitions=2)
ddf.head()

     x
0   2020-01-01 15:00:00
1   2020-01-01 16:00:00
2   2020-01-01 17:00:00

def convert_date(timestr):
    return datetime.strptime(timestr, "%Y-%m-%d %H:%M:%S").timestamp()

ddf['y'] = ddf.x.apply(lambda x: convert_date(x), meta=('x', 'f8')).compute()
ddf.head()

x   y
0   2020-01-01 15:00:00     1.577920e+09
1   2020-01-01 16:00:00     1.577923e+09
2   2020-01-01 17:00:00     1.577927e+09

Но если я вызываю функцию convert_date напрямую, например, для 2020-01-01 15:00:00, я получаю другую метку времени.

print(convert_date("2020-01-01 15:00:00"))
1577919600.0
...