当前位置: 首页 > news >正文

一周学会Pandas2之Python数据处理与分析-数据重塑与透视-melt() - 融化 / 逆透视 (宽 -> 长)

锋哥原创的Pandas2 Python数据处理与分析 视频教程:  

2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

melt() 是 pandas 中用于数据重塑的核心方法之一,它可以将 宽格式数据 转换为 长格式数据,特别适合处理具有多个观测值列的数据集。与 stack()/unstack() 不同,melt() 提供了更直观的方式来整理数据,尤其适用于数据预处理和清洗阶段。

基本概念:宽格式 vs 长格式

在深入 melt() 之前,先理解两种数据格式:

  • 宽格式:每个变量有单独的列

   ID  Math  Science  English
0   1    90       85       92
1   2    78       88       95
  • 长格式:变量名和值分别存储在单独的列中

   ID   Subject  Score
0   1     Math     90
1   1  Science     85
2   1  English     92
3   2     Math     78
4   2  Science     88
5   2  English     95

基本语法

pd.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None, ignore_index=True)

参数说明

参数说明
frame要处理的 DataFrame
id_vars保持不变的列(标识变量)
value_vars要融合的列(观测值变量)
var_name新创建的变量名列的名称
value_name新创建的值列的名称
col_level用于多级列索引的层级
ignore_index是否忽略原始索引(默认为 True)

示例

import pandas as pd
​
# 创建示例数据
df = pd.DataFrame({'Student': ['Alice', 'Bob'],'Math': [90, 78],'Science': [85, 88],'English': [92, 95]
})
​
print("原始数据(宽格式):")
print(df)

使用 melt() 转换:

melted_df = pd.melt(df,id_vars=['Student'],  # 保留学生列value_vars=['Math', 'Science', 'English'],  # 融合的科目列var_name='Subject',  # 新列名:存储科目名称value_name='Score'  # 新列名:存储分数
)
​
print("\n融合后数据(长格式):")
print(melted_df)

http://www.xdnf.cn/news/751177.html

相关文章:

  • 2.5/Q2,Charls最新文章解读
  • transformer 输入三视图线段输出长宽高 笔记
  • 大模型应用开发之预训练
  • DAY 16 numpy数组与shap深入理解
  • 【第三十八周】BLIP-2:一种高效的视觉语言预训练框架
  • 介绍一种LDPC码译码器
  • Python 爱心图案代码
  • 计算晶体结构和电子能带的软件
  • 【Python高阶】面向对象
  • C语言-10.字符串
  • 【Day41】
  • 非常有趣的桌面萌宠互动软件
  • 单板机8088C语言计划
  • 前端面经 get和post区别
  • 使用交叉编译工具提示stubs-32.h:7:11: fatal error: gnu/stubs-soft.h: 没有那个文件或目录的解决办法
  • Baklib内容中台革新企业知识实践
  • AI 社交和AI情绪价值的思考
  • 高并发抽奖系统优化方案
  • python训练营day40
  • 共享内存-systemV
  • Python应用for循环遍历寻b
  • homework 2025.03.31 chinese(class 3)
  • DeepSeek R1-0528:深度思考能力的重大跃升与技术突破全解析
  • 一文读懂Automotive SPICE
  • Day41 Python打卡训练营
  • 【HW系列】—Windows日志与Linux日志分析
  • 远程线程注入
  • 【PhysUnits】15.5 引入P1后的标准化表示(standardization.rs)
  • Cesium快速入门到精通系列教程一
  • AtCoder AT_abc408_d [ABC408D] Flip to Gather