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

能否仅按键对DataFrame行分组,仅将键列转为索引而不修改其他列?若可行,如何实现?

问题解答:仅按指定键将列转为索引,保留所有原始行与列

当然可以实现你想要的操作!不需要对其他列做任何修改,只需要把指定的键列转为索引,同时保留所有原始行的数据,用pandas的set_index()方法就能轻松搞定。

具体实现步骤

首先还原你的示例DataFrame:

import pandas as pd

df = pd.DataFrame({
    "id": ['A','A','A','B','B','C','C','C','C'],
    "data1": [11,35,46,11,26,25,39,50,55],
    "data2": [1,1,1,1,1,2,2,2,2],
})

接下来执行转索引操作,只需要指定要转为索引的列名即可:

result_df = df.set_index('id')

执行结果

运行后得到的result_df就是你期望的格式,在支持分层索引可视化的环境(比如Jupyter Notebook)中,重复的索引值会自动合并显示,呈现出缩进式的视觉效果:

iddata1data2
A111
351
461
B111
261
C252
392
502
552

关键说明

  • set_index('id')只会把指定的'id'列移到索引位置,不会修改其他任何列的内容,也不会删除或合并任何原始行。
  • 如果之后需要把索引转回普通列,只需执行result_df.reset_index()即可恢复原结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 21:47:47