Как игнорировать None при конвертации даты?
DataFrame:
df = pd.DataFrame({'DEP_DATE': [4274696742, None, -1544861678, 48960604955]})
Преобразовывается так:
df["DEP_DATE"] = (df["DEP_DATE"].apply(lambda x: pd.Period(datetime.datetime.utcfromtimestamp(x).strftime("%d-%m-%Y %H:%M:%S"))))
Должно получиться:
0 2105-06-17 15:45:42
1 nan
2 1921-01-17 21:45:22
3 3521-07-02 16:02:35
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Попробуйте так:
from datetime import datetime as DT
df["res"] = pd.PeriodIndex(
[DT.utcfromtimestamp(x).strftime("%Y-%m-%d") if pd.notna(x) else np.nan
for x in df["DEP_DATE"]],
freq="D")
результат:
In [25]: df
Out[25]:
DEP_DATE res
0 4.274697e+09 2105-06-17
1 NaN NaT
2 -1.544862e+09 1921-01-17
3 4.896060e+10 3521-07-02
In [26]: df.dtypes
Out[26]:
DEP_DATE float64
res period[D]
dtype: object