熊猫日期格式不转换日期

时间:2014-01-30 17:06:04

标签: python datetime pandas

我正在使用Pandas版本0.12.0导入日期为

的csv文件

日期采用以下格式'SEP2005'

使用pandas读取csv文件:

import pandas as pd

DF = pd.read_csv('mydata.csv') 

mydata.head()
Out[40]: 
      Date  Quantity  
0  APR2002  282.0000     
1  APR2002  NaN     
2  APR2002  0.0000     
3  APR2002  20.2253     
4  APR2002  55.6853     

然后我使用以下内容将日期列转换为索引:

mydata.index = pd.to_datetime(mydata.pop('Date'))

这是过去非常奇怪的事情,它解析了我的日期并将格式转换为

2002-04-15这就是我想要的。然后我会确定设置该月最后一天的日期:

mydate.index = mydata.index.to_period('M').to_timestamp('M')

Pandas过去在选择最佳日期格式方面做得非常出色。

然而,当我现在这样做的时候,我的DataFrame回复了同样的文字“APR2002”

正如您猜测的那样,上一个to_period将无效。

我没有更改我的代码而且我没有更新Pandas所以我不确定这个变化来自哪里。

我不确定我是否过多关注原因。我真正需要帮助的是如何格式化索引列以反映年 - 月 - 日或%Y%m%d,如2005-04-30

我来自R所以任何帮助都会很大!

2 个答案:

答案 0 :(得分:2)

你可以尝试

 pd.to_datetime(mydata.pop('Date'), format="%b%Y")

但是预计日期会显示为Apr2002(请注意并非所有上限)。

您可以使用格式字符串指定日期时间格式,格式字符串将接受strftime参数(已定义here)。这也有一些pandas documentation

答案 1 :(得分:0)

尝试:

DF = pd.read_csv('mydata.csv', parse_dates=[0])