将Pandas索引从整数更改为日期时间格式

gno*_*ejh 2 python datetime pandas

我有一个巨大的DataFrame,它包含整数形式的索引,例如日期时间表示20171001.我要做的是将表单更改为20171001日期时间格式'2017-10-01'.

为简单起见,我生成了这样一个数据帧.

>>> df = pd.DataFrame(np.random.randn(3,2), columns=list('ab'), index=
[20171001,20171002,20171003])
>>> df
             a         b
20171001  2.205108  0.926963
20171002  1.104884 -0.445450
20171003  0.621504 -0.584352
>>> df.index
Int64Index([20171001, 20171002, 20171003], dtype='int64')
Run Code Online (Sandbox Code Playgroud)

如果我们将'to_datetime'应用于df.index,我们会得到奇怪的结果:

>>> pd.to_datetime(df.index)
DatetimeIndex(['1970-01-01 00:00:00.020171001',
           '1970-01-01 00:00:00.020171002',
           '1970-01-01 00:00:00.020171003'],
          dtype='datetime64[ns]', freq=None)
Run Code Online (Sandbox Code Playgroud)

我想要的是DatetimeIndex(['2017-10-01', '2017-10-02', '2017-10--3'], ...) 如何解决这个问题?请注意,该文件已给出.

Flo*_*oor 6

使用format %Y%m%dpd.to_datetime

pd.to_datetime(df.index, format='%Y%m%d')
DatetimeIndex(['2017-10-01', '2017-10-02', '2017-10-03'], dtype='datetime64[ns]', freq=None)
Run Code Online (Sandbox Code Playgroud)

分派 df.index = pd.to_datetime(df.index, format='%Y%m%d')