【发布时间】:2021-04-17 21:18:11
【问题描述】:
我有以下数据框。
df_1:
order_id date
123 2020-01-01
456 NaT
789 2020-10-10
135 2020-05-31
234 NaT
111 NaT
df_2:
order_id date
123 2020-01-02
456 2021-01-01
789 2020-10-11
135 2020-6-01
输出应捕获日期从上一个条目更改为未来日期和/或 NaT 更改为新日期的任何时间。
new_df 应该等于:
order_id date
123 2020-01-02
456 2021-01-01
789 2020-10-11
135 2020-6-01
我尝试过的:
df_1['date'] = pd.to_datetime(
df_1['date'])
df_2['date'] = pd.to_datetime(
df_2['date'])
s = df_2.set_index('order_id')['date']
mapped = df_1['order_id'].map(s)
mask = mapped > df_1['date']
df_1.loc[mask, 'date'] = mapped
这仅在日期更改为未来日期时进行更改,但在 NaT 变为新日期时不会捕获。
【问题讨论】:
-
生成的数据框是 df_2 的精确副本。
标签: python-3.x pandas dataframe series