Python熊猫:如何从数据帧中的时间戳获取小时?

Python熊猫:如何从数据帧中的时间戳获取小时?,python,r,pandas,Python,R,Pandas,我有一个名为DF的数据帧,看起来像这样 time blah 2013-01-17 8:30 blah blah 2013-01-17 9:30 blah blah DF[DF$time$hour == 8,] time下的元素是TimeStamp类。我想获取小时=8的所有行。我该怎么做 在R中,是这样的 time blah 2013-01-17 8:30 bl

我有一个名为DF的数据帧,看起来像这样

time                     blah
2013-01-17 8:30          blah blah
2013-01-17 9:30          blah blah
DF[DF$time$hour == 8,]
time下的元素是TimeStamp类。我想获取小时=8的所有行。我该怎么做

在R中,是这样的

time                     blah
2013-01-17 8:30          blah blah
2013-01-17 9:30          blah blah
DF[DF$time$hour == 8,]

谢谢

有几个地方可能会被困在这里,如果没有代码,很难知道是哪一个。让我们一个接一个地看

请注意,关于的文档中解释了其中的大部分内容(还包括相关类,如
Timestamp
,必要时还提供了相关链接),这可能比我或StackOverflow上的任何其他人做得更好

无论如何,如果您有一个
TimeSeries
(或任何一系列Pandas对象),您可以通过正常的点属性语法访问
Timestamp
(或其他)对象的成员,并根据需要返回一个新的序列或数组。例如:

>>> df = pd.DataFrame({'blah': ('blah', 'blah')}, index=(pd.Timestamp('201301170830'), pd.Timestamp('201301070930'))
>>> ts = df.index
>>> ts.hour
array([8, 9])
所以,如果你想得到一个布尔数组:

>>> df.index.hour == 8
array([True, False], dtype=bool)
现在,有无数种方法可以选择pandas中的内容(请参见上的教程部分),但其中一种方法是:

>>> df[df.index.hour == 8]
                     blah
2013-01-17 08:30:00  blah

这就是你要找的吗?

有几个地方你可能会被困在这里,没有代码就很难知道是哪一个。让我们一个接一个地看

请注意,关于的文档中解释了其中的大部分内容(还包括相关类,如
Timestamp
,必要时还提供了相关链接),这可能比我或StackOverflow上的任何其他人做得更好

无论如何,如果您有一个
TimeSeries
(或任何一系列Pandas对象),您可以通过正常的点属性语法访问
Timestamp
(或其他)对象的成员,并根据需要返回一个新的序列或数组。例如:

>>> df = pd.DataFrame({'blah': ('blah', 'blah')}, index=(pd.Timestamp('201301170830'), pd.Timestamp('201301070930'))
>>> ts = df.index
>>> ts.hour
array([8, 9])
所以,如果你想得到一个布尔数组:

>>> df.index.hour == 8
array([True, False], dtype=bool)
现在,有无数种方法可以选择pandas中的内容(请参见上的教程部分),但其中一种方法是:

>>> df[df.index.hour == 8]
                     blah
2013-01-17 08:30:00  blah

这就是你要找的吗?

你有没有看过交互式解释器中的文档,或者只是尝试过
help(Timestamp)
或者
help(my_Timestamp_instance)
?另外,你是否知道一般情况下如何过滤数据帧,但不知道你的问题标题所说的“如何从时间戳获取小时数”,或者你一开始不知道如何使用数据帧吗?是的,我知道时间戳是如何工作的。问题是我是从对象列表中查询小时,而不是从对象本身。例如,我可以通过执行DF.time[0]==8来获取小时数。这将返回1个布尔值,但我想要的是一个布尔值列表;您有一个日期框、一个系列、一个索引或一个数组。假设你有一个系列或索引,这很容易;例如,如果你有一个数组,那么你要做的是得到一个系列或索引而不是数组。在没有看到代码的情况下,很难解释需要更改什么。您是否查看了上的文档,或者只是在交互式解释器中尝试了
help(Timestamp)
help(my_Timestamp_instance)
?另外,您是否知道如何过滤数据帧,但不知道“如何从时间戳获取小时数”正如你的问题标题所说,或者你一开始不知道如何使用数据帧?是的,我知道时间戳是如何工作的。问题是我是从对象列表中查询小时,而不是从对象本身。例如,我可以通过执行DF.time[0]==8来获取小时数。这将返回1个布尔值,但我想要的是一个布尔值列表;您有一个日期框、一个系列、一个索引或一个数组。假设你有一个系列或索引,这很容易;例如,如果你有一个数组,那么你要做的是得到一个系列或索引而不是数组。在没有看到代码的情况下,很难解释需要更改什么才能做到这一点。