选择位于日期时间间隔内的行

我正在尝试比较两个数据帧并从第一个数据帧中删除不在第二个数据帧中的日期之间的行(或...选择那些在第二个数据帧中的日期之间的行)。选择应该包括在内。这可能真的很简单,但它现在不适合我点击。


示例数据如下。对于数据框 1,可以使用从 2018 年 7 月 1 日开始到 2018 年 11 月 30 日结束的每日数据生成,并在“数字”列中使用随机数。将...在数据帧1是指用来显示跳过数据,但该数据是在有真正的数据帧。


数据框 1:


               Number

Date

2018-07-01     15.2

2018-07-02     17.3

2018-07-03     19.5

2018-07-04     13.7

2018-07-05     19.1

...

2018-09-15     30.4

2018-09-16     25.7

2018-09-17     21.2

2018-09-18     19.7

2018-09-19     23.4

...

2018-11-01     30.8

2018-11-02     47.2

2018-11-03     25.3

2018-11-04     39.7

2018-11-05     43.8

数据框 2:


              Change

Date

2018-07-02     Start

2018-07-04     End

2018-09-16     Start

2018-09-18     End

2018-11-02     Start

2018-11-04     End

对于上面的例子,输出应该是:


               Number

Date

2018-07-02     17.3

2018-07-03     19.5

2018-07-04     13.7

2018-09-16     25.7

2018-09-17     21.2

2018-09-18     19.7

2018-11-02     47.2

2018-11-03     25.3

2018-11-04     39.7


冉冉说
浏览 200回答 2
2回答

跃然一笑

你可以试试这个,我希望开始和结束一个接一个地出现并排序。df3 = pd.concat([df[i:j] for i,j in zip(df2.loc[df2['Change']=='Start'].index, df2.loc[df2['Change']=='End'].index)]))             NumberDate              2018-07-02    17.32018-07-03    19.52018-07-04    13.72018-09-16    25.72018-09-17    21.22018-09-18    19.72018-11-02    47.22018-11-03    25.32018-11-04    39.7
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python