【问题标题】:Pandas DateTime index, assign value to column based on based on time AND day filterPandas DateTime 索引,根据时间和日期过滤器为列分配值
【发布时间】:2022-01-03 17:58:16
【问题描述】:

我正在尝试根据日期和时间过滤器为列分配值。 假设我创建了一个数据框:

import pandas as pd
from datetime import date

date_range = pd.DataFrame({'date': pd.date_range(date(2019,8,30), date.today(), freq='15T')})
date_range.index = date_range['date']

然后我可以过滤当天(星期日)并分配一个值:

date_range['Happy Hour'] = ((pd.DatetimeIndex(date_range.index).dayofweek) // 6 == 'Yes!!')

我还可以过滤一个时间范围并分配一个值

date_range.loc[date_range.between_time('15:00','18:59').index, 'Happy Hour'] = 'Yes!!'

但肯定有一种简单的方法可以将这些组合到一行代码中,这样每周日 15:00 到 19:00 之间,Happy Hour 列都会填满“是的!!”

【问题讨论】:

    标签: python pandas datetime dayofweek


    【解决方案1】:

    首先过滤星期日,然后过滤时间:

    idx = date_range[date_range.index.dayofweek == 6].between_time('15:00','18:59').index
    date_range.loc[idx, 'Happy Hour'] = 'Yes!!'
    print (date_range)
    

    【讨论】:

    • 现在很明显...感谢 jezrael!
    猜你喜欢
    • 2019-01-09
    • 2021-07-22
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-20
    • 2020-03-31
    • 1970-01-01
    相关资源
    最近更新 更多