我有两个数据帧,第一个是由用户手动创建的,第二个是来自机器的错误。 我想根据第一个数据帧中的时间间隔(df\u 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)
视为有效记录的两个数据帧的时间间隔的任何交点。你知道吗
条件1=df泳b开始时间在df泳a开始时间之后开始,在df泳a结束时间之前结束
condition2=df\ b开始时间在df\ a开始时间之前开始,但在df\ a结束时间之前结束
condition3=df\u b start\u times在df\u a starttime和df\u a end time之间开始,但在df\u a endtime之后结束
最后,我想根据条件合并这两个数据帧。我理想的桌子如下所示
Station Reason_a a n c d e
A1 Electronic 1 1 1 0 0
A2 Feed 0 1 0 1 0
我应该如何处理这个问题? 任何评论都会有帮助。你知道吗
提前谢谢。你知道吗
我想到了这个:
生成日期时间:
应用lambda函数:
其次是:
我将通过合并
station
上的表并计算交点来解决这个问题:D可以使用pandasmerge_asof执行这些类型的合并。你知道吗
假设“Station”是合并过程的一个附加键,您可以使用以下内容:
相关问题 更多 >
编程相关推荐