如何使用 at_time() 方法从 pandas.series 对象中选择值?
Pandas Series 的 at_time() 方法用于选择给定序列对象特定时间的值。at_time() 方法接受一个时间参数,并返回一个包含所选值的序列对象。
如果指定的日期时间在给定序列对象的索引中不存在,则 at_time 方法将返回一个空的 Series 对象;如果输入序列对象的索引不包含 DatetimeIndex,则会引发 TypeError 错误。
让我们创建一个带有 Datetime 索引的 pandas Series 对象,并使用 Series.at_time() 方法获取值。如果指定的日期时间存在于给定输入序列对象的索引中,则它将返回一个包含这些行值的序列对象。
示例 1
import pandas as pd # create the index index = pd.date_range('2021-01-1', periods=10, freq='6H') #creating pandas Series with date-time index series = pd.Series([1,2,3,4,5,6,7,8,9,10], index=index) print(series) # selecting values print("Selecting values:", series.at_time("6:00"))
解释
在以下示例中,使用 pandas DateTime 索引和一些整数列表创建序列。之后,我们应用 at_time() 方法以获取时间“6:00”处的值。
输出
2021-01-01 00:00:00 1 2021-01-01 06:00:00 2 2021-01-01 12:00:00 3 2021-01-01 18:00:00 4 2021-01-02 00:00:00 5 2021-01-02 06:00:00 6 2021-01-02 12:00:00 7 2021-01-02 18:00:00 8 2021-01-03 00:00:00 9 2021-01-03 06:00:00 10 Freq: 6H, dtype: int64 Selecting values: 2021-01-01 06:00:00 2 2021-01-02 06:00:00 6 2021-01-03 06:00:00 10 Freq: 24H, dtype: int64
在此示例中,我们已成功从给定的序列对象中选择了 3 行,这 3 行在其索引标签处具有时间“6:00”小时。
示例 2
import pandas as pd # create the index index = pd.date_range('2021-01-1', periods=10, freq='30T') #creating pandas Series with date-time index series = pd.Series([1,2,3,4,5,6,7,8,9,10], index=index) print(series) # selecting values print("Selecting values:", series.at_time("00:10:00"))
解释
同样地,我们创建了一个带有 pandas DateTime 索引的 pandas 对象。之后,我们尝试在时间“00:10:00”处从序列获取值。
输出
2021-01-01 00:00:00 1 2021-01-01 00:30:00 2 2021-01-01 01:00:00 3 2021-01-01 01:30:00 4 2021-01-01 02:00:00 5 2021-01-01 02:30:00 6 2021-01-01 03:00:00 7 2021-01-01 03:30:00 8 2021-01-01 04:00:00 9 2021-01-01 04:30:00 10 Freq: 30T, dtype: int64 Selecting values: Series([], Freq: 30T, dtype: int64)
以下示例的输出是一个空序列对象,这是由于请求时间在给定序列对象的索引中不可用。
广告