python - Pandas 日期时间: groupy hourly and every monday

标签 python datetime pandas hour weekday

我是 pandas/python 新手: 我有一个由 datetime 对象索引的dataframe (events.number)。

我正在尝试在每个星期一(或其他特定工作日)每小时提取一个事件计数。我写道:

hour_tally_monday = events.number.groupby(lambda x: (x.hour & x.weekday==0) ).count()   

但这不能正常工作。

我可以删除“& x.weekday==1”,它可以工作,但可能会使用框架中的所有日期。周一平均的正确(最简单)语法是什么?

最佳答案

我认为你需要首先使用 boolean indexing 过滤数据帧然后使用 groupbysize :

import pandas as pd

start = pd.to_datetime('2016-02-01')
end = pd.to_datetime('2016-02-25')
rng = pd.date_range(start, end, freq='12H')

events = pd.DataFrame({'number': [1] * 20 + [2] * 15 + [3] * 14}, index=rng)
print events
                     number
2016-02-01 00:00:00       1
2016-02-01 12:00:00       1
2016-02-02 00:00:00       1
2016-02-02 12:00:00       1
2016-02-03 00:00:00       1
2016-02-03 12:00:00       1
2016-02-04 00:00:00       1
2016-02-04 12:00:00       1
2016-02-05 00:00:00       1
2016-02-05 12:00:00       1
2016-02-06 00:00:00       1
2016-02-06 12:00:00       1
2016-02-07 00:00:00       1
...
...
filtered = events[events.index.weekday == 0]
print filtered
                     number
2016-02-01 00:00:00       1
2016-02-01 12:00:00       1
2016-02-08 00:00:00       1
2016-02-08 12:00:00       1
2016-02-15 00:00:00       2
2016-02-15 12:00:00       2
2016-02-22 00:00:00       3
2016-02-22 12:00:00       3

在版本0.18.1中,您可以使用新方法DatetimeIndex.weekday_name :

filtered = events[events.index.weekday_name == 'Monday']
print filtered
                     number
2016-02-01 00:00:00       1
2016-02-01 12:00:00       1
2016-02-08 00:00:00       1
2016-02-08 12:00:00       1
2016-02-15 00:00:00       2
2016-02-15 12:00:00       2
2016-02-22 00:00:00       3
2016-02-22 12:00:00       3

print filtered.groupby(filtered.index.hour).size()
0     4
12    4
dtype: int64

关于python - Pandas 日期时间: groupy hourly and every monday,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37129296/

相关文章:

python - 将微秒格式化为小数点后两位(实际上是将微秒转换为几十微秒)

javascript - Laravel 日期选择器在帖子上给出错误的值并给出错误的年份

python - 如何让多处理 python 应用程序干净地退出

python - 实例化一个 TypeVar 类型

python - 当 value 是 cls 的实例时,您可以注释返回类型吗?

javascript - 使用 getUTCHours 并在 JavaScript 中添加 UTC 偏移量

python - pandas read_csv 函数读取一列作为核苷酸序列的 NaN

csv - np.savetxt 样式为 pandas DataFrame.to_csv 提供了很好的表格输出

python - 如何将从方法获得的一列结果添加到现有数据框?

Python:将所有具有约束的唯一组合输出到 Pandas DataFrame