gpt4 book ai didi

python - 日期时间差和数据帧过滤

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:44 24 4
gpt4 key购买 nike

我有以下结构的 Panda 数据帧 df,开始和结束时间是字符串值。

           Start Time            End Time
0 2007-07-24 22:00:00 2007-07-25 07:16:53
1 2007-07-25 07:16:55 2007-07-25 08:52:19
2 2007-07-25 09:45:53 2007-07-25 10:30:00
3 2007-07-25 12:32:00 2007-07-25 14:13:38
4 2007-07-25 22:59:00 2007-07-26 13:43:00

1- 如何查找结束时间和开始时间之间的小时和分钟差异
2-查询数据框以过滤时间小于1小时30分钟的所有行
3-过滤时间差在20分钟到40分钟之间的所有行

最佳答案

问题1
使用pd.to_datetime,然后减去列。

for c in df.columns:
df[c] = pd.to_datetime(df[c])

(df['End Time'] - df['Start Time']).dt.total_seconds() / 3600

0 9.281389
1 1.590000
2 0.735278
3 1.693889
4 14.733333
dtype: float64

问题2
只需使用 mask 和过滤器即可:

v = (df['End Time'] - df['Start Time']).dt.total_seconds() / 3600
df[v < 1.5]

Start Time End Time
2 2007-07-25 09:45:53 2007-07-25 10:30:00

如果我误解了,并且您实际上想要保留这样的行,请颠倒条件:

df[v >= 1.5]

Start Time End Time
0 2007-07-24 22:00:00 2007-07-25 07:16:53
1 2007-07-25 07:16:55 2007-07-25 08:52:19
3 2007-07-25 12:32:00 2007-07-25 14:13:38
4 2007-07-25 22:59:00 2007-07-26 13:43:00

问题3
再次,使用掩模和过滤器:

df[(1/3 <= v) & (v <= 2/3)]

关于python - 日期时间差和数据帧过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47385719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com