📜  Python|熊猫 Series.at_time()(1)

📅  最后修改于: 2023-12-03 15:19:21.367000             🧑  作者: Mango

Python Pandas Series.at_time()

Series.at_time()是Pandas库中的一个函数,用于返回在指定时间的有关指定时间的数据索引。此函数基于时间索引。此功能可用于获取所有在指定时间的行的数据,以及以该特定时间为起点的所有行的数据。

在此之前,请确保已将Python和Pandas安装在您的计算机上。

语法

以下是Series.at_time()函数的语法:

Series.at_time(time, asof=None) → {label / slice}

参数:

  • time 要获取的特定时间,格式:字符串或者类似datetime.time类型的对象
  • asof 返回该时间之前的最后一行数据,格式同上。

返回:

  • 与在指定时间到达的所有数据相关联的索引,或以该特定时间为起点的所有行数据
示例

首先,导入必要的库。

import pandas as pd
import numpy as np

创建一个数据帧,以对些示例进行操作:

rng = pd.date_range('1/1/2011', periods=72, freq='H')
df = pd.DataFrame({'value': np.arange(len(rng))}, index=rng)
df.head()

输出:

                     value
2011-01-01 00:00:00      0
2011-01-01 01:00:00      1
2011-01-01 02:00:00      2
2011-01-01 03:00:00      3
2011-01-01 04:00:00      4

现在,我们将指定时间设置为datetime.time对象:

df.at_time(pd.datetime.time(4, 0))

输出:

                     value
2011-01-01 04:00:00      4
2011-01-02 04:00:00     28
2011-01-03 04:00:00     52

现在,我们将指定时间设置为字符串并进行操作:

df.at_time('4:00')

输出:

                     value
2011-01-01 04:00:00      4
2011-01-02 04:00:00     28
2011-01-03 04:00:00     52

如果我们指定asof,则我们将获得指定时间之前的最后一个行数据:

df.at_time(pd.datetime.time(4, 0), asof=pd.Timestamp('2011-01-03 10:00:00'))

输出:

                     value
2011-01-03 04:00:00     52