首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中Excel Datetime SN转换

Python中Excel Datetime SN转换
EN

Stack Overflow用户
提问于 2020-12-30 23:09:00
回答 1查看 94关注 0票数 1

我的csv输入文件有时在日期字段中有excel序列号。我使用以下代码,因为我的输入文件不应该包含01/2000之前的日期。然而,这个解决方案很费时,我希望能找到一个更好的解决方案。谢谢。

代码语言:javascript
复制
def DateCorrection(x):
    if pd.to_datetime(x) < pd.to_datetime('2000-01-01'):
        return pd.to_datetime(datetime.fromordinal(datetime(1900, 1, 1).toordinal() + int(x) - 2))
    else:
        return pd.to_datetime(x)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-01 06:15:40

假设您的输入看起来像

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame({'date': ["2020-01-01", 43862, "2020-03-01"]})

您可以按以下方式处理它:

代码语言:javascript
复制
# convert everything first, ignore invalid results for now:
df['datetime'] = pd.to_datetime(df['date'])

# where you have numeric values, i.e. "excel datetime format":
nums = pd.to_numeric(df['date'], errors='coerce') # timestamp strings will give NaN here

# now replace the invalid dates:
df.loc[nums.notna(), 'datetime'] = pd.to_datetime(nums[nums.notna()], unit='d', origin='1899-12-30')

...giving你

代码语言:javascript
复制
df
          date   datetime
0  2020-01-01 2020-01-01
1       43862 2020-02-01
2  2020-03-01 2020-03-01

有关:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65514678

复制
相关文章

相似问题

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