首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将浮点数列转换为日期时间

将浮点数列转换为日期时间
EN

Stack Overflow用户
提问于 2022-07-21 16:50:39
回答 2查看 46关注 0票数 0

我的dataframe列由以下内容组成:

df['Year] = [2025, 2024, NaN, 2023, 2026, NaN] (这些是float64类型)

如何将这些年转换为日期时间格式的内容?由于不包括几个月或几天,我觉得默认情况下它们必须输出为[01-01-2025, 01-01-2021, NaT, 01-01-2023, 01-01-2026, NaT]

但是,如果有一种方法仍然保留列为[2025, 2024, NaT, 2023, 2026, NaT],那么这也会很好。

使用df['Year'] = pd.DatetimeIndex(df['Year']).year只输出[1970, 1970, NaN, 1970, 1970, NaN]

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-21 17:18:56

你可以使用熊猫的to_datetime()和设置errors='coerce'来照顾NaNs (-> NaT)

代码语言:javascript
复制
df['Year'] = pd.to_datetime(df['Year'], format='%Y', errors='coerce')

输出将类似于01-01-2025, 01-01-2021 ...

票数 2
EN

Stack Overflow用户

发布于 2022-07-21 17:03:36

可能不是最优雅的解决方案,但如果将列转换为字符串,并使用虚拟年份(比如1900)填充空,则可以使用dateutil中的解析器。

代码语言:javascript
复制
from dateutil import parser

('01/01/'+df['year']).fillna('1900').apply(parser.parse)

Out67

代码语言:javascript
复制
0   2025-01-01
1   2024-01-01
2   1900-07-21
3   2023-01-01
4   2026-01-01
5   1900-07-21
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73069965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档