【发布时间】:2016-08-23 05:32:37
【问题描述】:
您好,我有一个数据框 df,其中包含从起点 X 到目的地 Y 的不同行程的数据,起始时间为 T。我想在某个时间窗口计算X 和Y 之间的行程,比如说15 min。所以,
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
为了计算从X 到Y 的所有行程,我做了:
tmp = df.groupby(["X", "Y"]).size()
我怎样才能考虑到我只想计算特定时间间隔内相同的行程dt这一事实?
【问题讨论】:
-
在 groupby 之后的 T 列上使用 pd.diff。这样,您将在下一次旅行中获得差异。然后在dt部分上选择
-
我在 groubpy 之后没有 T 列
-
创建一个新函数,参数为
dt。在那里,做 diff(在 T 上,应该在那里)并只选择 diff_T == dt 部分,返回选定的数据帧。然后做类似df.groupby(["X", "Y"]).apply(func) -
@emax,不太清楚如何连接你想要的输出和
to count trips between X and Y in a certain time windows, let say 15 min?你能发布想要的输出吗? -
在 group by 之前先过滤所有数据怎么样?
标签: python datetime pandas dataframe