如何在python中指定时间戳的格式

时间:2017-08-01 09:24:00

标签: python datetime timestamp

我有一个日期为字符串格式的数据框。我将这些日期转换为时间戳,以便我可以在代码的后半部分使用此日期列。计算/比较等一切都很好,但我希望时间戳以%d。%m。%Y格式出现,而不是默认%Y-%m-%d。让我来说明一下 -

dt=pd.DataFrame({'date':['09.12.1998','07.04.2014']},index=[1,2])
dt
Out[4]: 
         date
1  09.12.1998
2  07.04.2014

dt['date_1']=pd.to_datetime(dt['date'],format='%d.%m.%Y')

dt
Out[7]: 
         date     date_1
1  09.12.1998 1998-12-09
2  07.04.2014 2014-04-07

我希望dt['date_1']以与dt['date']相同的格式显示。我不希望使用.strftime()函数,因为它会将数据类型从timestamp转换为string。

在Nutshell中:如何调用python系统以我选择的格式显示时间戳(月份可能像APR,MAY等),而不是获取默认格式(如1998) -12-09),请记住数据类型仍然是时间戳,而不是字符串?

3 个答案:

答案 0 :(得分:2)

看来Pandas还没有实现这个选项: https://github.com/pandas-dev/pandas/issues/11501

答案 1 :(得分:0)

看一下https://pandas.pydata.org/pandas-docs/stable/options.html看起来你可以设置显示来实现其中一些,尽管不是全部。

  

display.date_dayfirst当为True时,首先打印并解析日期,例如20/01/2005

     

display.date_yearfirst如果为True,则首先打印和分析年份,例如2005/01/20

所以你可以享受一天,但他们几个月都没有包括名字。

在更基础的层面上,每当你显示某些东西时,它就是一个字符串,对吧?我不确定为什么在您不必更改原始数据框时显示它就无法转换它。

您的代码将是:

pd.set_option("display.date_dayfirst", True)

除了实际上这不起作用:

https://github.com/pandas-dev/pandas/issues/11501

已经实现了解析选项,但没有用于显示。

答案 2 :(得分:0)

Hallo Stael / Cezar / Droravr,谢谢大家提供的意见。我珍惜你的时间,非常感谢你的帮助。感谢您分享此链接https://github.com/pandas-dev/pandas/issues/11501。我通过链接了解到这个问题最终可以分解为“显示问题”,正如jreback所阐述的那样。将日期显示为所需格式的此问题已标记为增强功能,因此可能会添加到将来的版本中。

我想要的只是将日期导出为dd-mm-yyy并且只是在导出时格式化字符串,我们可以解决这个问题。 所以,我通过将文件导出为 -

来对此问题进行排序

dt.to_csv(filename, date_format='%d-%m-%Y',index=False)

    date     date_1
09.12.1998 09-12-1998
07.04.2014 07-04-2014

因此,这个问题已经解决了。

再次感谢大家的帮助以及您在这个问题上花费的宝贵时间。非常感谢。