You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两个时间戳索引的pandas DataFrame合并为列多级索引DataFrame

实现代码
import pandas as pd

# 给单个币种的close列添加二级索引
eth_col = pd.MultiIndex.from_tuples([('eth', 'close')])
eth_df_clean = eth_df[['close']].set_axis(eth_col, axis=1)

btc_col = pd.MultiIndex.from_tuples([('btc', 'close')])
btc_df_clean = btc_df[['close']].set_axis(btc_col, axis=1)

# 按时间戳索引合并
# 如需仅保留两个币种都有数据的时间戳,添加join='inner'参数即可
portfolio_df = pd.concat([eth_df_clean, btc_df_clean], axis=1)
可扩展写法(适配多币种场景)

后续如果要新增其他币种,不需要重复写处理逻辑,用批量处理方式即可:

# 把所有币种的DataFrame存入字典,key为币种符号
coin_dfs = {
    'eth': eth_df,
    'btc': btc_df
}

processed_list = []
for coin_name, df in coin_dfs.items():
    multi_col = pd.MultiIndex.from_tuples([(coin_name, 'close')])
    processed_list.append(df[['close']].set_axis(multi_col, axis=1))

portfolio_df = pd.concat(processed_list, axis=1)

运行后得到的portfolio_df完全匹配要求的结构:行索引为timestamp,列采用二级索引,第一级为币种符号、第二级为close字段。

内容的提问来源于stack exchange,提问作者Jacob R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:36:07