我有以下数据框架:
<表类>
开始
完成
tbody><<tr>16.11.2021 21:36:31 16.11.2021 21:37:31 16.11.2021 21:39:31 16.11.2021 21:40:28 16.11.2021 21:41:39 16.11.2021 21:40:31 16.11.2021 21:56:31 16.11.2021 21:48:31 16.11.2021 21:50:35 16.11.2021 21:58:56 表类>
您可以使用pandas.merge_asof
这是假设值在两列中都排序(如果不是,添加一个sort_values()
步骤)。
df['Start'] = pd.to_datetime(df['Start'])
df['Finish'] = pd.to_datetime(df['Finish'])
pd.merge_asof(df['Start'].dropna(), df['Finish'],
left_on='Start', right_on='Finish', direction='forward')
输出:
Start Finish
0 2021-11-16 21:36:31 2021-11-16 21:37:31
1 2021-11-16 21:39:31 2021-11-16 21:40:28
2 2021-11-16 21:41:39 2021-11-16 21:48:31
3 2021-11-16 21:56:31 2021-11-16 21:58:56