Pandas 如何使用at_time()方法从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
在这个示例中,我们成功地从给定的series对象中选择了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)
下面示例的输出是一个空的系列对象,这是因为请求时间在给定系列对象的索引中不存在。