我正在使用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所以任何帮助都会很大!
答案 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])