【发布时间】:2019-10-24 11:25:16
【问题描述】:
我有一个数据框,其中包含跨越多天的分钟数据,我想以这样一种方式进行过滤,以便我每天都获得以下时间: 09:31
有没有简单的方法来做到这一点?在将日期和时间分成单独的列之后,我想按照 slice(None) 的方式做一些事情,但我认为可能有更简单的方法。
【问题讨论】:
标签: python pandas indexing slice
我有一个数据框,其中包含跨越多天的分钟数据,我想以这样一种方式进行过滤,以便我每天都获得以下时间: 09:31
有没有简单的方法来做到这一点?在将日期和时间分成单独的列之后,我想按照 slice(None) 的方式做一些事情,但我认为可能有更简单的方法。
【问题讨论】:
标签: python pandas indexing slice
我认为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 :)
df.index.levels[0].indexer_at_time("09:31") 获取整数位置,然后使用df.iloc[] 获取行。