python - 合并 DateTimeIndex 上的两个数据框,忽略年份
问题描述
我有两个数据框,一个是一系列测量值,
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
与定义的左连接和辅助列一起使用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))
推荐阅读
- javascript - 为什么Vue在加载图像时会出错
- python-3.x - OpenCV AttributeError 模块“cv2.cv2”没有属性“TrackerBoosting_create”
- c# - 无法使用 Emgu CV 连接到本地 IP 摄像机
- android - ds.child(key).setValue() 进入子级时出错
- avr - AVR 和 FATFS 多块读取
- python - VB,净值。您如何处理要求多个用户输入的 cmd 进程
- magento2 - Magento 2 UI dataprovider 不加载数据
- python - 字典到面向对象的转换
- reactjs - React Redux -> 为什么我得到 TypeError: state.item is not iterable
- python-3.x - 如何使用 TensorFlow 训练两塔模型?