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

如何将DataFrame的行、列索引拼接生成新的DataFrame?

解决方案:将宽格式DataFrame转换为带连接索引的长格式

构造原始DataFrame

先还原你提供的原始数据:

import pandas as pd

df = pd.DataFrame(
    [[0, 0.43, 0.61],
     [0.88, 0, 0.12],
     [0.33, 0.95, 0]],
    index=[1,2,3],
    columns=[1,2,3]
)

方法一:使用stack()(推荐,更简洁)

利用stack()将列索引转为行索引,再处理连接字段:

# 堆叠转换为长格式,重置索引
stacked = df.stack().reset_index()
# 拼接原行索引和列名得到Link列
stacked['Link'] = stacked['level_0'].astype(str) + '_' + stacked['level_1'].astype(str)
# 调整列名和顺序
result = stacked.rename(columns={0: 'Value'})[['Link', 'Value']]

方法二:使用melt()

如果更习惯用melt做宽转长,也可以这样实现:

# 先把原索引转为普通列,再用melt转换
melted = df.reset_index().melt(id_vars='index', var_name='col', value_name='Value')
# 拼接得到Link列
melted['Link'] = melted['index'].astype(str) + '_' + melted['col'].astype(str)
# 筛选需要的列
result = melted[['Link', 'Value']]

最终结果

执行上述任意方法后,result就是你想要的格式:

Link  Value
0   1_1    0.00
1   1_2    0.43
2   1_3    0.61
3   2_1    0.88
4   2_2    0.00
5   2_3    0.12
6   3_1    0.33
7   3_2    0.95
8   3_3    0.00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:23:18