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

时间:2014-07-22 19:17:53

标签: python r pandas

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

time                     blah
2013-01-17 8:30          blah blah
2013-01-17 9:30          blah blah

时间元素是TimeStamp类。我想用小时== 8抓住所有行。我该怎么做?

在R中,它就像这样

DF[DF$time$hour == 8,]

谢谢!

1 个答案:

答案 0 :(得分:5)

有些地方可能会被困在这里,没有代码就很难知道哪一个。让我们逐一介绍。

请注意,大部分内容都在TimeSeries的文档中进行了解释(其中还包括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)

现在,有很多方法可以在熊猫中选择东西(请参阅Selection上的教程部分),但有一种方法可以做到:

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

这就是你要找的东西吗?