![](/img/trans.png)
[英]How to subtract these two dates? How to count the number of minutes between them?
[英]How to count Observation between two dates
我有 DateTime 格式的数据。 我需要计算两个日期之间的观察次数。 我的方法是这样的:
from datetime import datetime
from datetime import timedelta
names = ["year","month","day","hour","minute","second"]
df1 = pd.read_csv('T.txt',sep='\t',names=names)
df2 = pd.read_csv('Axil.txt',sep='\t',names=names)
t_series1=pd.to_datetime(df1[names]) # Time series 1
t_series2=pd.to_datetime(df2[names]) # time series 2
t1=t_series1[0] # first entry of time series1
t2=t1+ timedelta(hours=2) #
print(t_series1)
print(t_series2)
uu=t_series2.datetime.between_time('t1', 't2')
print(uu)
日期看起来像这样:时间序列 1(长度 164)和时间序列 2(长度 145261)
0 2015-02-13 19:30:00
1 2015-02-16 23:38:00
2 2015-03-30 00:33:00
3 2015-04-24 13:59:00
4 2015-04-25 07:04:00
...
159 2021-01-21 13:13:00
160 2021-01-24 00:41:00
161 2021-02-03 06:09:00
162 2021-02-10 14:05:00
163 2021-02-13 14:40:00
Length: 164, dtype: datetime64[ns]
0 2015-01-22 00:00:28
1 2015-01-22 00:08:59
2 2015-01-22 02:02:41
3 2015-01-22 02:19:57
4 2015-01-22 02:36:07
...
145256 2021-02-28 01:42:40
145257 2021-02-28 01:49:45
145258 2021-02-28 02:27:24
145259 2021-02-28 10:00:36
145260 2021-02-28 13:58:12
Length: 145261, dtype: datetime64[ns]
between_time
方法选择一天中特定时间之间的观察结果(请参阅文档)。 要获取日期之间的观察次数,您可以尝试
((t_series2>=t1)&(t_series2<=t2)).sum()
或者,您可以将DataFrame
中的names
列转换为datetime
,将其设置为DateTimeIndex
然后使用loc
:
df1['names'] = pd.to_datetime(df1.names)
df1.set_index('names', inplace=True)
df1.loc[t1:t2].shape[0] # returns the length of the sub-frame of observations between t1 and t2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.