确定日期范围之外的日期

时间:2020-05-19 05:43:40

标签: python pandas dataframe

我有一个看起来像这样的数据框

df:
date          Open      Quantity  Close
2012-01-05   5277.95      50.0   8424.90
2012-01-06   8424.90      50.0   8486.85 
2012-01-09   8486.85      50.0   8453.25  
2012-01-10   8453.25      50.0   8758.05
2012-01-11   8758.05      50.0   8849.00   
2012-01-12   8849.00      50.0   8971.00   
2012-01-12   5221.90     -50.0   8971.00
2012-02-24  10718.10      50.0  10604.80  
   .           .            .       .

,并具有另一个数据框range1,其中包含每个月的交易开始和截止日期。为了知道这些日期中的哪个不在开始日期和截止日期之内,我实现了此代码

df['trade_range'] = pd.cut(df.Date, range1, right='False', duplicates='drop',labels=False)

并得到这样的结果

                Open  Quantity     Close               trade_range 
Date
2012-01-05   5277.95      50.0   8424.90  (2011-12-30, 2012-01-25]   
2012-01-06   8424.90      50.0   8486.85  (2011-12-30, 2012-01-25]     
2012-01-09   8486.85      50.0   8453.25  (2011-12-30, 2012-01-25]    
2012-01-10   8453.25      50.0   8758.05  (2011-12-30, 2012-01-25]    
2012-01-11   8758.05      50.0   8849.00  (2011-12-30, 2012-01-25]     
2012-01-12   8849.00      50.0   8971.00  (2011-12-30, 2012-01-25]    
2012-01-12   5221.90     -50.0   8971.00  (2011-12-30, 2012-01-25]   
2012-02-24  10718.10      50.0  10604.80  (2012-02-23, 2012-02-24]       

如果在df中没有日期的重复输入,那么识别超出截止日期的日期很容易,因为我只需要在df.trade_range中找到唯一的数组即可。但是,我有一个数据框,其中包含日期的两次输入,如您从2012-01-12所见。有什么办法可以使用pd.date_range转换trade_range列并获取范围的长度。如您所见,截止日期之后的那些日期(2012-02-24)的范围是一个整数。还是有什么方法可以建议您提高效率?

0 个答案:

没有答案
相关问题