【发布时间】:2018-10-15 01:49:44
【问题描述】:
尝试将数据框中的列从 1-420 个月(从 1985 年到 2010 年的 35 年月度数据)转换为日期时间对象。
示例数据框:
import pandas as pd
import numpy as np
dates = pd.Series(range(1,421))
df2 = pd.DataFrame(np.random.randn(420,4),index=dates,columns=list('ABCD'))
将索引转换为日期时间对象:
df2.index = pd.to_datetime(df2.index,unit='M', origin='1981-01-01')
给出错误:
ValueError: cannot cast unit M
我不知道为什么它不会投射单位 M,因为当我尝试使用 'd' 而不是 'M' 时,它可以工作,并且每天都会上升 - 为什么它不会每月上升?我从here 得到了这些单位。
使用 'm' 输出如下所示:
A B C D
1981-01-01 00:01:00 0.672397 0.753926 0.865845 0.711594
1981-01-01 00:02:00 0.786754 0.658421 -0.111609 -1.459447
1981-01-01 00:03:00 0.200273 -1.485525 -1.939203 0.921833
1981-01-01 00:04:00 -1.589668 0.109760 -1.349790 -1.951316
1981-01-01 00:05:00 0.133847 -0.359300 -1.246740 -0.835645
1981-01-01 00:06:00 -0.843962 1.222129 -0.121450 -1.223132
1981-01-01 00:07:00 -0.818932 0.731127 0.984731 -1.028384
它在几分钟内上升,我希望它在几个月内上升,如下所示:
A B C D
1981-01-01 00:00:00 0.672397 0.753926 0.865845 0.711594
1981-02-01 00:00:00 0.786754 0.658421 -0.111609 -1.459447
1981-03-01 00:00:00 0.200273 -1.485525 -1.939203 0.921833
【问题讨论】:
-
预期输出是什么?
-
@harv 我编辑了问题
标签: python python-2.7 pandas datetime