python - 在 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
解决方案
我相信您正在处理 Excel 日期类型,它是自以来的天数,正如@Dishin 指出的那样1900-01-01
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
推荐阅读
- docker - Azure AKS 中的 Pod 随机重新启动
- python - 在 Python3 中,如何在单元测试中测试异常处理?
- vue.js - 使用 vue 和 apollo 在 GraphQL 中发送查询时出错
- reactjs - 在 React 中通过 props 传递用户 ID
- javascript - 检查用户是否离线并更新数据库中的字段
- java - 为什么 List.contain 不匹配子字符串?
- regex - 删除包含特定单词的行以及 Notepad++ 中的上一行
- database - 针对 REST 输入和 ODATA(或 REST)输出的 ETL 工具建议
- java - 如何将数组用于循环中的方法
- python - 我可以从 kivi 语言中的一个小部件引用另一个小部件的属性吗?