我正在阅读具有以下结构的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
感谢您的帮助。
答案 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