繁体   English   中英

如何计算两个日期之间的观察

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM