【问题标题】:Convert '9999-12-31 00:00:00' to 'dd/mm/yyyy' in Pandas在 Pandas 中将“9999-12-31 00:00:00”转换为“dd/mm/yyyy”
【发布时间】:2020-11-11 20:18:04
【问题描述】:

我有一个包含“日期”列的数据框,其值为“9999-12-31 00:00:00”。我需要将其转换为 'dd/mm/yyyy'。

import pandas as pd
data = (['9999-12-31 00:00:00'])
df = pd.DataFrame(data, columns=['Date'])

【问题讨论】:

  • 到目前为止您尝试过什么?你有没有得到任何错误?你查阅过文档吗?
  • 我收到错误:超出范围纳秒时间戳:9999-12-31 00:00:00 @Exelian
  • 那是因为pandas 无法处理datetime dtype 这么高的年份,请检查docs

标签: python pandas datetime


【解决方案1】:

通过自定义函数使用daily periods,通过split删除时间并通过strftime更改格式:

df['Date'] = (df['Date'].str.split()
                        .str[0]
                        .apply(lambda x: pd.Period(x, freq='D'))
                        .dt.strftime('%d/%m/%Y'))
print (df)
         Date
0  31/12/9999

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-24
    • 2022-11-03
    • 2019-07-19
    • 2021-06-23
    • 1970-01-01
    • 2015-02-03
    • 2016-01-30
    • 2014-06-08
    相关资源
    最近更新 更多