pandas.read_csv没有白天的parse_dates

时间:2014-04-26 16:22:03

标签: python parsing pandas

我正在阅读具有以下结构的csv文件:

2008,1,283.7,8
2008,2,323.1,8
2008,3,270.7,2
2008,4,353.6,2

年,月,数据,观察

我通过这种方式用read_csv函数读取它:

df_in = pd.read_csv(file, header=None, index_col='Date', parse_dates={'Date': [0, 1]})

代码没有任何问题,只是所有日期的日期都是我运行代码的日子,即今天是4月26日,示例的索引是:

                   2  3
   Date               
   2008-01-26  283.7  8
   2008-02-26  323.1  8
   2008-03-26  270.7  2
   2008-04-26  353.6  2

我需要将索引的那一天作为每个月的第一天。

                  2  3
   Date               
   2008-01-1  283.7  8
   2008-02-1  323.1  8
   2008-03-1  270.7  2
   2008-04-1  353.6  2

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

我会做以下事情:

data = """
year,month,x1,x2
2008,1,283.7,8
2008,2,323.1,8
2008,3,270.7,2
2008,4,353.6,2
""" 

df = pd.read_csv(StringIO(data),header=True,                           
                 parse_dates={'date':[0,1]},
                 index_col='date')
df.index = df.index.values.astype('datetime64[M]')
print df

               x1  x2
2008-01-01  283.7   8
2008-02-01  323.1   8
2008-03-01  270.7   2
2008-04-01  353.6   2