我正在try 合并两个数据帧.On有一个包含事件的日期范围列,另一个包含值的列.我想将这一事件添加到测量值和各自的日期中.
import pandas as pd
df_1 = pd.DataFrame(
columns=["timestamp", "measured value"],
data=[
(pd.to_datetime("2012-07-16 23:23:50"), 2.1),
(pd.to_datetime("2012-08-16 02:23:50"), 4),
(pd.to_datetime("2015-07-16 12:23:50"), 2),
(pd.to_datetime("2018-08-16 20:23:50"), 1.2),
],
)
df_2 = pd.DataFrame(
columns=["start", "end", "event"],
data=[
(
pd.to_datetime("2015-06-16 12:23:50"),
pd.to_datetime("2015-08-16 12:23:50"),
True,
),
],
)
我try 了以下几种方法:
df_2.index = pd.IntervalIndex.from_arrays(df_2["start"], df_2["end"], closed="both")
df_1.assign(events = df_2['event'])
timestamp measured value events
0 2012-07-16 23:23:50 2.1 NaN
1 2012-08-16 02:23:50 4.0 NaN
2 2015-07-16 12:23:50 2.0 NaN
3 2018-08-16 20:23:50 1.2 NaN
所需输出:
timestamp measured value event
0 2012-07-16 23:23:50 2.1 NaN
1 2012-08-16 02:23:50 4.0 NaN
2 2015-07-16 12:23:50 2.0 True
3 2018-08-16 20:23:50 1.2 NaN