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

Pandas如何从已有DataFrame转换得到指定列结构的新DataFrame

Pandas宽表转指定结构长表实现

直接用pandas内置的长宽表转换方法搭配简单的字符串处理即可实现,代码如下:

import pandas as pd

# 示例df1(和给出的源数据一致)
df1 = pd.DataFrame([[438.55, 654.78, 870.34]], columns=['Q1(25%)', 'Q2(50%)', 'Q3(75%)'])

# 核心转换逻辑
df2 = df1.melt(var_name='quant', value_name='points')
# 提取原列名中的分位数值
df2['quant'] = df2['quant'].str.extract(r'\((\d+)%\)').astype('int')

执行后得到的df2完全匹配目标结构:

quant  points
0     25  438.55
1     50  654.78
2     75  870.34

逻辑拆解

  • melt方法会把原表的所有列名收拢为quant列的取值,对应行的数值收拢为points列,一步完成宽转长的基础结构调整
  • 正则提取部分直接匹配列名中括号内、百分号前的数字,转成整数后就得到目标的分位标识,不需要手动逐列替换字符串
  • 该逻辑兼容df1存在多行数据的场景,不需要额外做适配修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:48:10