python - Pandas 在索引上合并,但列移动了 1
问题描述
我的第一个数据框看起来像这样,df:
lastUpdated midprice returns
2020-05-12 00:19:10 0.000200 NaN
2020-05-12 00:19:20 0.000200 0.000000
2020-05-12 00:19:30 0.000200 0.000025
...
2020-05-12 06:56:40 0.000206 -0.000049
2020-05-12 06:56:50 0.000206 0.000000
2020-05-12 06:57:00 0.000206 0.000000
我的第二个数据框看起来像这样,df2:
ts 1.38259 lastUpdated
lastUpdated
2020-05-12 00:19:10 1.589244e+12 3.36436 2020-05-12 00:42:32.202
2020-05-12 00:19:20 1.589244e+12 3.34661 2020-05-12 00:42:23.399
2020-05-12 00:19:30 1.589244e+12 3.34661 2020-05-12 00:42:23.399
2020-05-12 00:19:40 1.589244e+12 3.15296 2020-05-12 00:40:47.384
...
2020-05-12 06:59:30 1.589267e+12 35.121100 2020-05-12 06:58:24.165
2020-05-12 06:59:40 1.589267e+12 35.121100 2020-05-12 06:58:24.165
2020-05-12 06:59:50 1.589267e+12 35.521100 2020-05-12 06:57:31.452
我需要做的是合并数据框,如下所示:
lastUpdated midprice returns 1.38259
2020-05-12 00:19:10 0.000200 NaN 3.34661
2020-05-12 00:19:20 0.000200 0.000000 3.34661
2020-05-12 00:19:30 0.000200 0.000025 3.15296
....
所以列1.38259
被移动了Index+1
,我试图做,merge
但我做不到Index+1
,我不知道你是否理解我试图达到的目标......有什么帮助吗?谢谢!!
解决方案
您可以使用移位的列创建一个新的 df2 列,然后将其与 df1 正常合并:
df2["shifted_col"] = df2["1.38259"].shift(1)
new_df = df1.merge(df2, left_index=True, right_index=True)
推荐阅读
- haskell - 如何调试被“杀死”的堆栈进程?
- c# - SqlException:对象名无效,对象在运行时创建
- android - YoutubeExtractor Android 依赖错误
- php - 包含来自 Head 标签的脚本和资源的 PHP 文件(PHP 包含问题)
- reactjs - 在 ReactJS 中对表格进行分页
- next.js - __dirname 未在 API 路由中定义
- html - 我无法为我的身体设置颜色背景
- java - 在 Intellij Ultimate 中为简单的 Spring 应用程序设置 applicationContext.xml
- php - Woocommerce - 更改产品图库图片仅选择变体
- flutter - 异步等待没有按预期工作,它必须返回我未来的结果