【发布时间】:2019-12-21 18:49:58
【问题描述】:
我有两个数据框,第一个是用户手动创建的,第二个是机器错误。 我想根据第一个数据帧(df_a)中的时间间隔合并它们
这里是数据框;
d_a = {'Station' : ['A1','A2'],
'Reason_a' : ['Electronic','Feed'],
'StartTime_a' : ['2019-01-02 02:00:00','2019-01-02 04:22:00'],
'EndTime_a' : ['2019-01-02 02:20:00', '2019-01-02 04:45:00']}
d_b = {'Station' : ['A1','A1','A1','A2','A2','A2'],
'Reason_b' : ['a','n','c','d','e','n'],
'StartTime_b' : ['2019-01-02 00:00:00.000','2019-01-02 00:05:00.000','2019-01-01 23:55:00.000','2019-01-02 04:19:53.000','2019-01-02 04:19:37.000','2019-01-02 04:23:00.000'],
'EndTime_b' : ['2019-01-02 00:19:15.000','2019-01-02 00:29:45.000','2019-01-02 00:12:12.000','2019-01-02 04:27:12.000','2019-01-02 04:47:16.000','2019-01-02 04:52:45.000']}
df_a = pd.DataFrame(d_a)
df_b = pd.DataFrame(d_b)
两个数据帧的时间间隔的任何交点都被视为有效记录。
condition1 = df_b start_time 在 df_a 开始时间之后开始,在 df_a 结束时间之前结束
condition2 = df_b start_time 在 df_a 开始时间之前开始,但在 df_a 结束时间之前结束
condition3 = df_b start_timestarts 在 df_a starttime 和 df_a endtime 之间,但在 df_a endtime 之后结束
最后我想根据条件合并这两个数据框。我的理想表如下所示
Station Reason_a a n c d e
A1 Electronic 1 1 1 0 0
A2 Feed 0 1 0 1 0
我应该如何解决这个问题? 任何评论都会有所帮助。
提前致谢。
【问题讨论】:
标签: python pandas datetime conditional-statements nested-loops