pandas时间序列的生成

时间序列

Pandas为时间序列数据的工作时间提供了一个强大的工具,尤其是在金融领域。在处理时间序列数据时,我们经常遇到以下情况 -

  • 生成时间序列
  • 将时间序列转换为不同的频率

Pandas提供了一个相对紧凑和自包含的工具来执行上述任务。

获取当前时间

datetime.now()用于获取当前的日期和时间。

import pandas as pd
print pd.datetime.now()

Python上述代码执行结果如下 -

2017-11-03 02:17:45.997992

创建一个时间戳

时间戳数据是时间序列数据的最基本类型,它将数值与时间点相关联。 对于Pandas对象来说,意味着使用时间点。举个例子 -

import pandas as pd
time = pd.Timestamp('2018-11-01')
print(time)

Python执行上面示例代码,得到以下结果 -

2018-11-01 00:00:00

也可以转换整数或浮动时期。这些的默认单位是纳秒(因为这些是如何存储时间戳的)。 然而,时代往往存储在另一个可以指定的单元中。 再举一个例子 -

import pandas as pd
time = pd.Timestamp(1588686880,unit='s')
print(time)

Python执行上面示例代码,得到以下结果 -

2020-05-05 13:54:40

创建一个时间范围,类似于:pd.date_range(start='2019-1-09', end='2019-1-31')

import pandas as pd

time = pd.date_range("12:00", "23:59", freq="30min").time
print(time)

Python执行上面示例代码,得到以下结果 -

[datetime.time(12, 0) datetime.time(12, 30) datetime.time(13, 0)
 datetime.time(13, 30) datetime.time(14, 0) datetime.time(14, 30)
 datetime.time(15, 0) datetime.time(15, 30) datetime.time(16, 0)
 datetime.time(16, 30) datetime.time(17, 0) datetime.time(17, 30)
 datetime.time(18, 0) datetime.time(18, 30) datetime.time(19, 0)
 datetime.time(19, 30) datetime.time(20, 0) datetime.time(20, 30)
 datetime.time(21, 0) datetime.time(21, 30) datetime.time(22, 0)
 datetime.time(22, 30) datetime.time(23, 0) datetime.time(23, 30)]

Shell改变时间的频率

import pandas as pd

time = pd.date_range("12:00", "23:59", freq="H").time
print(time)

Python执行上面示例代码,得到以下结果 -

[datetime.time(12, 0) datetime.time(13, 0) datetime.time(14, 0)
 datetime.time(15, 0) datetime.time(16, 0) datetime.time(17, 0)
 datetime.time(18, 0) datetime.time(19, 0) datetime.time(20, 0)
 datetime.time(21, 0) datetime.time(22, 0) datetime.time(23, 0)]

Shell转换为时间戳

要转换类似日期的对象(例如字符串,时代或混合)的序列或类似列表的对象,可以使用to_datetime函数。当传递时将返回一个Series(具有相同的索引),而类似列表被转换为DatetimeIndex。 看看下面的例子 -

import pandas as pd

time = pd.to_datetime(pd.Series(['Jul 31, 2009','2019-10-10', None]))
print(time)

Python执行上面示例代码,得到以下结果 -

0   2009-07-31
1   2019-10-10
2          NaT
dtype: datetime64[ns]

NaT表示不是一个时间的值(相当于NaN)

举一个例子,

import pandas as pd
import pandas as pd
time = pd.to_datetime(['2009/11/23', '2019.12.31', None])
print(time)

Python执行上面示例代码,得到以下结果 -

DatetimeIndex(['2009-11-23', '2019-12-31', 'NaT'], dtype='datetime64[ns]', freq=None)

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小金子的夏天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值