Python:如何在特定时间窗口内对 pandas Data Frame 进行分组?

标签 python datetime pandas dataframe

你好我有一个数据框 df 包含从起点 X 到目的地 Y 的不同行程的数据,开始时间为 T 。我想计算在特定时间窗口内 XY 之间的行程,比方说 15 分钟。所以,

df:
X Y           T
1 2 2015-12-30 22:30:00.0
1 2 2015-12-30 22:35:00.0
1 2 2015-12-30 22:40:00.0
1 2 2015-12-30 23:40:00.0
3 5 2015-11-30 13:40:00.0
3 5 2015-11-30 13:44:00.0
3 5 2015-11-30 19:54:00.0

我要

dfO:
X Y count
1 2   3
3 5   2

为了计算从 XY 的所有行程,我做了:

tmp = df.groupby(["X", "Y"]).size()

我怎样才能考虑到我只想计算特定时间间隔内的相同行程 dt 的事实?

最佳答案

也许您正在寻找pd.TimeGrouper .它允许您按时间间隔对 DataFrame 中的行进行分组,前提是 DataFrame 具有 DatetimeIndex。 (请注意 MaxU's solution 展示了如何在不使用 DatetimeIndex 的情况下按时间间隔分组。)

import pandas as pd

df = pd.DataFrame({'T': ['2015-12-30 22:30:00.0',
                         '2015-12-30 22:35:00.0',
                         '2015-12-30 22:40:00.0',
                         '2015-12-30 23:40:00.0',
                         '2015-11-30 13:40:00.0',
                         '2015-11-30 13:44:00.0',
                         '2015-11-30 19:54:00.0'],
                   'X': [1, 1, 1, 1, 3, 3, 3],
                   'Y': [2, 2, 2, 2, 5, 5, 5]})
df['T'] = pd.to_datetime(df['T'])
df = df.set_index(['T'])
result = df.groupby([pd.TimeGrouper('15Min'), 'X', 'Y']).size()
print(result)

产量

T                    X  Y
2015-11-30 13:30:00  3  5    2
2015-11-30 19:45:00  3  5    1
2015-12-30 22:30:00  1  2    3
2015-12-30 23:30:00  1  2    1

这里包含了你想要的信息

T                    X  Y
2015-11-30 13:30:00  3  5    2
2015-12-30 22:30:00  1  2    3

等等。不清楚您希望在什么基础上排除其他行。如果你 解释标准,我们应该能够准确地生成所需的 DataFrame。

关于Python:如何在特定时间窗口内对 pandas Data Frame 进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36914892/

相关文章:

python - Pandas DataFrame 的条件计算列

python - Pandas 系列: select rows int series based upon values from another series

python - 如何使用谷歌应用引擎处理异常

.net - 以日期作为迭代器的 For 循环

javascript - 在javascript中解析MySQL TIME

python-3.x - 如何从 pd.Dataframe 中提取索引

python - 数据框 Pandas 中所有行的 Pearson 相关性

python - 在 url 参数 DJANGO 中处理 '&'

php - 简单的 CGI python 网络服务器 + php 不工作

python - 从 tzdata 中提取历史闰秒