一周学会Pandas2之Python数据处理与分析-数据重塑与透视-unstack() - 解堆 (行 -> 列)

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

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

unstack() 是 pandas 中用于数据重塑的重要方法,它与 stack() 互为逆操作。unstack() 的主要功能是将行索引的某一层级转换为列索引,从而将数据从长格式转换为宽格式。

基本语法

DataFrame.unstack(level=-1, fill_value=None)

参数说明

  • level (默认为 -1):

    • 指定要移动到列索引的行索引层级

    • 可以是整数(层级位置)、字符串(层级名称)或列表(多个层级)

    • -1 表示最内层(默认值)

  • fill_value (默认为 None):

    • 用于替换缺失值的填充值

    • 如果不指定,缺失值将显示为 NaN

1,基本操作:将行索引转换为列索引

import pandas as pd
​
# 创建多级索引的 Series
index = pd.MultiIndex.from_tuples([
    ('A', 'X'), ('A', 'Y'),
    ('B', 'X'), ('B', 'Y')
])
s = pd.Series([1, 2, 3, 4], index=index)
print("原始Series:")
print(s)
执行 unstack():

result = s.unstack()
print("\nunstack() 结果:")
print(result)

2,指定要转换的层级

import pandas as pd
​
# 创建三级索引的 Series
index = pd.MultiIndex.from_tuples([
    ('I', 'A', 'X'), ('I', 'A', 'Y'),
    ('II', 'B', 'X'), ('II', 'B', 'Y')
])
s = pd.Series([10, 20, 30, 40], index=index)
print("初始数据:")
print(s)
# 转换不同层级
print("转换最内层 (level=-1):")
print(s.unstack())  # 默认转换最内层
​
print("\n转换第一层 (level=0):")
print(s.unstack(level=0))
​
print("\n转换第二层 (level=1):")
print(s.unstack(level=1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值