pandas 如何把时间转成index_Pandas如何将RangeIndex转换为DateTimeIndex

这篇博客讨论了在pandas中如何将数据框的一分钟OHLC数据的时间列转换为DateTimeIndex。作者首先使用pd.to_datetime()函数将'T'列转换为日期,然后尝试通过df.set_index()设置为索引,但结果仍然是RangeIndex。问题在于转换后的DateTimeIndex不正确,作者寻求解决方案以正确地将RangeIndex转换为DateTimeIndex。
摘要由CSDN通过智能技术生成

我有以下数据框。这是OHLC一分钟的数据。显然,我需要T列变成和索引以便使用时间序列功能

C H L O T V公司13712 6873.0 6873.0 6873.0 6873.0 2018-01-13T17:17:00 799.448421

13713 6878.0 6878.0 6875.0 6875.0 2018-01-13T17:18:00 1707.578666

13714 6880.0 6880.0 6825.0 6825.0 2018-01-13T17:21:00 481.245707

13715 6876.0 6876.0 6876.0 6876.0 2018-01-13T17:22:00 839.177283

13716 6870.0 6878.0 6830.0 6878.0 2018-01-13T17:23:00 4336.830277

我用过:df['T'] = pd.to_datetime(df['T'])

到目前为止还不错!T列现在被确认为日期

检查:

DatetimeIndex: 13717 entries, 1970-01-01 00:00:00 to 1970-01-01 00:00:00.000013716

Data columns (total 7 columns):

BV 13717 non-null float64

C 13717 non-null float64

H 13717 non-null float64

L 13717 non-null float64

O 13717 non-null float64

T 13717 non-null datetime64[ns]

V 13717 non-null float64

dtypes: datetime64[ns](1), float64(6)

memory usage: 857.3 KB

接下来是有趣和无法解释的部分:df.set_index(df['T'])

C H L O T V

T

2018-01-03 17:27:00 5710.0 5710.0 5663.0 5667.0 2018-01-03 17:27:00 3863.030204

2018-01-03 17:28:00 5704.0 5710.0 5663.0 5710.0 2018-01-03 17:28:00 1208.627542

2018-01-03 17:29:00 5699.0 5699.0 5663.0 5663.0 2018-01-03 17:29:00 1755.123688

看起来还不错,但是当我检查索引类型时,我得到:RangeIndex(start=0, stop=13717, step=1)

现在如果我试着:df.index = pd.to_datetime(df.index)

我的结局是:DatetimeIndex([ '1970-01-01 00:00:00',

'1970-01-01 00:00:00.000000001',

'1970-01-01 00:00:00.000000002',

'1970-01-01 00:00:00.000000003',

'1970-01-01 00:00:00.000000004' and so on...

这显然是错误的。

问题是:

一。如果要将日期转换为索引,为什么不获取普通的DateTimeIndex?如何用正确的时间戳将RangeIndex转换为DateTimeIndex?

谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值