Python 按分钟筛选多天的数据帧

Python 按分钟筛选多天的数据帧,python,pandas,indexing,slice,Python,Pandas,Indexing,Slice,我有一个数据帧,包含跨越多天的分钟数据,我希望以这样一种方式进行过滤,从每天得到以下时间: 09:31 有没有一个简单的方法可以做到这一点?在将日期和时间分为不同的列之后,我想按照slice(None)的思路做一些事情,但我认为可能有一种更简单的方法。我认为at_time()就是您想要的: import pandas as pd index = pd.date_range("2019-08-01 00:00", "2019-08-11 00:00", freq="1min") df = pd.

我有一个数据帧,包含跨越多天的分钟数据,我希望以这样一种方式进行过滤,从每天得到以下时间: 09:31

有没有一个简单的方法可以做到这一点?在将日期和时间分为不同的列之后,我想按照slice(None)的思路做一些事情,但我认为可能有一种更简单的方法。

我认为
at_time()
就是您想要的:

import pandas as pd

index = pd.date_range("2019-08-01 00:00", "2019-08-11 00:00", freq="1min")
df = pd.DataFrame(np.random.randn(len(index), 3), index=index, columns=["a", "b", "c"])

df.at_time("09:31")
我认为
at_time()
正是您想要的:

import pandas as pd

index = pd.date_range("2019-08-01 00:00", "2019-08-11 00:00", freq="1min")
df = pd.DataFrame(np.random.randn(len(index), 3), index=index, columns=["a", "b", "c"])

df.at_time("09:31")

从不知道
在_时间
:)我收到一条错误消息:TypeError:Index必须是DatetimeIndex,因为我有一个多索引,level=0是这种格式的日期:@Tartaglia,你可以通过
df.Index.levels[0]获取整数位置。indexer在_时间(“09:31”)
,然后使用
df.iloc[]
获取行。谢谢,这是一个很好的方法。我也能做到这一点:df=df.unstack().at_time(“09:31”).stack()从来都不知道
at_time
:)我收到一条错误消息:TypeError:Index必须是DatetimeIndex,因为我有一个多索引,level=0是这种格式的日期:@Tartaglia,你可以通过
df.Index.levels[0]在_time获得整数位置(“09:31”)
,然后使用
df.iloc[]
来获取行。谢谢,这是一个很好的方法。我也能够做到这一点:df=df.unstack()