首页 > 解决方案 > 在 Python 中从浮点数转换为日期时间

问题描述

我有一个数据类型为 float64 的数据框,我想将其更改为 datetime 64。但无论我使用哪种方法,结果都只返回一天:1970-01-01。请提供任何帮助

df.product_first_sold_date = [41245,0, 37659.0,40487.0,41701.0,40649.0]
dt.cv = pd.to_datetime(df.product_first_sold_date)
dt.cv
dt.cv2 = df.product_first_sold_date.apply(lambda x: datetime.fromtimestamp(x).strftime('%m-%d-%Y') if x==x else None)
dt.cv2

在此处输入图像描述

标签: pythonpandasdatetime

解决方案


我相信您正在处理 Excel 日期类型,它是自以来的天数1900-01-01,正如@Dishin 指出的那样1899-12-30

# sample data:
df = pd.DataFrame({'date':[41245,37659,40487]})

# convert - adjust 1900-01-01 to the correct day
df['date'] = pd.to_timedelta(df.date, unit='D') + pd.to_datetime('1899-12-30')

输出:

        date
0 2012-12-02
1 2003-02-07
2 2010-11-05

推荐阅读