Pandas 如何标记熊猫中特定时间集的日期时间索引?

Pandas 如何标记熊猫中特定时间集的日期时间索引?,pandas,datetime,Pandas,Datetime,我有一个大的pandas数据框,其中有一个日期时间对象作为索引。所代表的每一天被分成5分钟的增量。索引采用YYYY-MM-DD 00:00:00格式 如何在上午10:00之前和下午2:00之后为所有内容创建标志 我尝试了以下方法: import pandas import numpy condition = [df.index() <= "10:00:00"] replace = 1 df['early_flag'] = np.select(condition, re

我有一个大的
pandas
数据框,其中有一个日期时间对象作为索引。所代表的每一天被分成5分钟的增量。索引采用
YYYY-MM-DD 00:00:00
格式

如何在上午10:00之前和下午2:00之后为所有内容创建标志

我尝试了以下方法:

import pandas
import numpy

condition = [df.index() <= "10:00:00"]
replace = 1
df['early_flag'] = np.select(condition, replace, default = 0)
我期待的结果是:

datetime              id    name      Early_Flag
2004-04-01 09:45:00    5    bypedal    1
2004-04-01 09:50:00    5    bypedal    1
2004-04-01 09:55:00    5    bypedal    1
2004-04-01 10:00:00    5    bypedal    0
2004-04-01 10:05:00    5    bypedal    0

尝试使用datetime索引的
time
访问器+:


您能提供一些示例数据吗?
df.index
不可调用no
()
在索引后添加数据示例。谢谢@HenryEcker。有没有办法做到这一点,多天有相同的时间?谢谢。最后一个问题…如果我想在半小时前得到它,比如10:30,那该怎么办?只需将比较时间更改为
时间(10,30)
datetime              id    name      Early_Flag
2004-04-01 09:45:00    5    bypedal    1
2004-04-01 09:50:00    5    bypedal    1
2004-04-01 09:55:00    5    bypedal    1
2004-04-01 10:00:00    5    bypedal    0
2004-04-01 10:05:00    5    bypedal    0
from datetime import time

import numpy as np
import pandas as pd

# modified sample data to demonstrate multiple days and both bounds
df = pd.DataFrame({
    'datetime': ['2004-04-01 09:45:00', '2004-04-02 09:50:00',
                 '2004-04-03 09:55:00', '2004-04-04 10:00:00',
                 '2004-04-05 10:05:00', '2004-04-06 13:05:00',
                 '2004-04-07 14:00:00', '2004-04-07 14:00:01'],
    'id': [5, 5, 5, 5, 5, 5, 5, 5],
    'name': ['bypedal', 'bypedal', 'bypedal', 'bypedal', 'bypedal', 'bypedal',
             'bypedal', 'bypedal']
})
df['datetime'] = pd.to_datetime(df['datetime'])
df = df.set_index('datetime')

df['Early_flag'] = np.where(
    (df.index.time < time(10, 0)) | (df.index.time > time(14, 0)),
    1,
    0
)

print(df)