2014-10-04 54 views
2

有在以下回答使用大熊猫时指定日期格式的广泛引用的方法to_csv:熊猫to_csv - 日期格式以外2个位数

How to specify date format when using pandas.to_csv?

此答案描述:

date_format='%Y%m%d' 

但我有不同的要求,其中可以找到任何信息。

如何为实际的年/月/日标记指定不同的日期格式?

... date_format ='%Y%m%d'...翻译为2014/10/2截至今天的日期。我可以使用这些信息来处理相同的数据 - 例如10/2/2014,但我无法更改格式本身。

我想输出02-Oct_2014。我尝试了'%dd%mmm%yyyy',但额外的字母只是作为额外的字母添加 - 日期格式没有改变。

是否可以指定'%Y%m%d'排列以外的格式?

+0

你的日期格式字符串看起来不对,有三个m。月份缩写为%b。 – ako 2014-10-04 05:58:28

回答

3

熊猫使用strftime,所以使用the format codes it specifies

对于02-Oct_2014它看起来像你想%d-%b_%Y

>>> df = pd.DataFrame(list(range(5)), index=pd.date_range('10/1/14', periods=5)) 
>>> print(df.to_csv(date_format='%d-%b_%Y')) 
,0 
01-Oct_2014,0 
02-Oct_2014,1 
03-Oct_2014,2 
04-Oct_2014,3 
05-Oct_2014,4 
+0

谢谢你的帮助,它完全按照要求工作。 – rdh9 2014-10-04 15:09:18

1

你想要的格式为'%d-%b_%Y'。我怎么解决这个问题?我看着man strftime,因为那是在引擎盖下(或者它的仿真)使用的东西。我搜索了“月”的文档,发现这个:

%b is replaced by national representation of the abbreviated month name. 

它也显示在Python文档浏览:https://docs.python.org/2/library/time.html#time.strftime

最后,你可以像* nix的命令行中直接测试很多这样的格式所以:

date +%d-%b_%Y 
+0

非常感谢Thankyou的帮助,它工作正常。因为你们都贴出了相同的答案和解释,所以我接受了第一个来。我希望这是公平的。 – rdh9 2014-10-04 15:08:50