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

Pandas大数据集笛卡尔积(Cross Join)索引问题求助

带多层索引DataFrame的笛卡尔积实现方案
  • 先把DataFrame的索引转成普通列,避免merge操作丢失索引信息:

    # 将d1、d2的索引重置为列
    d1_reset = d1.reset_index()
    d2_reset = d2.reset_index()
    
  • 筛选出参与笛卡尔积的核心字段,避免生成无关列:

    # 仅保留Years、Days(来自d1)和Names(来自d2),同时去重减少计算量
    d1_core = d1_reset[['Years', 'Days']].drop_duplicates()
    d2_core = d2_reset[['Names']].drop_duplicates()
    
  • 执行笛卡尔积合并:

    cross_df = d1_core.merge(d2_core, how='cross')
    
  • (可选)将结果还原为目标多层索引:

    cross_df = cross_df.set_index(['Years', 'Days', 'Names'])
    

补充说明

如果原数据集还有需要保留的业务列,可以先通过上述步骤生成索引的笛卡尔积框架,再用merge或join关联原数据的列,既保证索引逻辑正确,又不会产生冗余列。

内容的提问来源于stack exchange,提问作者Michael W

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:52:06