我有一个名为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,]
谢谢!
答案 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
这就是你要找的东西吗?