合并 DateTimeIndex 上的两个数据帧,忽略年份
Merge two dataframes on DateTimeIndex ignoring the year
我有两个数据框,一个是一系列测量值,
A = ID Value
2020-01-01 00:00:00 0.2
2020-01-01 01:00:00 0.2
...
2020-12-31 22:00:00 0.6
2020-12-31 23:00:00 0.5
2021-01-01 00:00:00 0.4
2021-01-01 01:00:00 0.3
...
2021-12-31 22:00:00 0.3
2021-12-31 23:00:00 0.2
另一个是缩放值,每年都相同,但可用于特定年份的 DateTimeIndex。
B = ID Value
2020-01-01 00:00:00 2
2020-01-01 01:00:00 3
...
2020-12-31 22:00:00 10
2020-12-31 23:00:00 11
有没有办法合并两个数据集,忽略第二个数据集的年份以获得这样的数据框:
A = ID ValueA ValueB
2020-01-01 00:00:00 0.2 2
2020-01-01 01:00:00 0.2 3
...
2020-12-31 22:00:00 0.6 10
2020-12-31 23:00:00 0.5 11
2021-01-01 00:00:00 0.4 2
2021-01-01 01:00:00 0.3 3
...
2021-12-31 22:00:00 0.3 10
2021-12-31 23:00:00 0.2 11
使用DataFrame.merge
with left join and helper column defined by DatetimeIndex.strftime
:
df = (df1.assign(time=df.index.strftime('%m-%d %H:%M:%S'))
.merge(df2.assign(time=df2.index.strftime('%m-%d %H:%M:%S')),
on='time', how='left', suffixes=('A','B'))
.drop('time', axis=1))
我有两个数据框,一个是一系列测量值,
A = ID Value
2020-01-01 00:00:00 0.2
2020-01-01 01:00:00 0.2
...
2020-12-31 22:00:00 0.6
2020-12-31 23:00:00 0.5
2021-01-01 00:00:00 0.4
2021-01-01 01:00:00 0.3
...
2021-12-31 22:00:00 0.3
2021-12-31 23:00:00 0.2
另一个是缩放值,每年都相同,但可用于特定年份的 DateTimeIndex。
B = ID Value
2020-01-01 00:00:00 2
2020-01-01 01:00:00 3
...
2020-12-31 22:00:00 10
2020-12-31 23:00:00 11
有没有办法合并两个数据集,忽略第二个数据集的年份以获得这样的数据框:
A = ID ValueA ValueB
2020-01-01 00:00:00 0.2 2
2020-01-01 01:00:00 0.2 3
...
2020-12-31 22:00:00 0.6 10
2020-12-31 23:00:00 0.5 11
2021-01-01 00:00:00 0.4 2
2021-01-01 01:00:00 0.3 3
...
2021-12-31 22:00:00 0.3 10
2021-12-31 23:00:00 0.2 11
使用DataFrame.merge
with left join and helper column defined by DatetimeIndex.strftime
:
df = (df1.assign(time=df.index.strftime('%m-%d %H:%M:%S'))
.merge(df2.assign(time=df2.index.strftime('%m-%d %H:%M:%S')),
on='time', how='left', suffixes=('A','B'))
.drop('time', axis=1))