我有2个来自2个源的下面的数据帧,3个白色列是索引。这是两份关于历史交易的报告。只有当“交易日期”、“交换工具”和“提示日期”三列相同时,才能对交易进行比较。“交易日期”是因为它们是按时间顺序报告的。只有当“交易工具”和“提示日期”相同时,期货合约才是相同的
我只想合并2个dfs,这样就有7列具有相同的3个索引。两份报告中的同一指数的值并非唯一的,这可能具有挑战性:例如,对于8月1日的CMX Cu合同,提示2020-03-01,有3次交易和不同的价格:
我尝试了concat和merge,但从未得到想要的df。。例如,在尝试时
df_complete= pd.concat([df_ctrm_timelined, df_broker_timelined],axis=1)
我明白了
ValueError: cannot handle a non-unique multi-index!
如果需要原始数据,这是两个dfs的前10行,两个dfs的行数都相同
df_经纪人_时间限制[:10]
broker_Lots broker_TradePrice \
Trade Date Exchange Instrument PromptDate
2019-08-01 CMX Cu 2020-03-01 -1 2.6840
2020-03-01 -1 2.6865
2020-03-01 -2 2.6870
2019-09-01 1 2.6640
2019-09-01 1 2.6665
2019-09-01 2 2.6670
LME Al 2019-10-16 6 1777.5000
2019-11-01 -3 1779.0000
2019-11-01 -1 1779.0000
2019-11-01 -2 1779.0000
broker_Quantity
Trade Date Exchange Instrument PromptDate
2019-08-01 CMX Cu 2020-03-01 -25000
2020-03-01 -25000
2020-03-01 -50000
2019-09-01 25000
2019-09-01 25000
2019-09-01 50000
LME Al 2019-10-16 150
2019-11-01 -75
2019-11-01 -25
2019-11-01 -50
df_ctrm_时间限制[:10]
ctrm_TradePrice ctrm_Lots \
Trade Date Exchange Instrument PromptDate
2019-08-01 CMX Cu 2019-09-30 2.6640 1
2019-09-30 2.6665 1
2019-09-30 2.6670 2
2020-03-31 2.6840 -1
2020-03-31 2.6865 -1
2020-03-31 2.6870 -2
LME Al 2019-10-16 1777.5000 6
2019-11-01 1792.5000 3
2019-11-01 1792.5000 3
2019-11-01 1781.5000 -6
ctrm_Quantity Strategy
Trade Date Exchange Instrument PromptDate
2019-08-01 CMX Cu 2019-09-30 25000 Strategy 1
2019-09-30 25000 Strategy 1
2019-09-30 50000 Strategy 1
2020-03-31 -25000 Strategy 1
2020-03-31 -25000 Strategy 1
2020-03-31 -50000 Strategy 1
LME Al 2019-10-16 150 Strategy 2
2019-11-01 75 Strategy 2
2019-11-01 75 Strategy 2
2019-11-01 -150 Strategy 2
处理非唯一索引:
输出:
以下是使用“提示”数据集的示例:
输出:
相关问题 更多 >
编程相关推荐