Pandas 13-定位、旋转数据表(行列转换)

1. 行/列转换(Pivot)

pivot 方法用于将数据从长格式转换为宽格式,即行转列。

示例代码
import pandas as pd  
  
# 创建示例 DataFrame  
df = pd.DataFrame({  
    '日期': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'],  
    '城市': ['北京', '上海', '北京', '上海'],  
    '温度': [3, 5, 4, 6]  
})  
  
# 行转列  
pivot_df = df.pivot(index='日期', columns='城市', values='温度')  
print(pivot_df)  

输出:

城市        上海  北京  
日期  
2023-01-01   5   3  
2023-01-02   6   4  

2. 透视表(Pivot Table)

pivot_table 方法类似于 pivot,但更灵活,可以进行聚合操作。

示例代码
# 创建示例 DataFrame  
df = pd.DataFrame({  
    '日期': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'],  
    '城市': ['北京', '上海', '北京', '上海'],  
    '温度': [3, 5, 4, 6]  
})  
  
# 创建透视表  
pivot_table_df = df.pivot_table(index='日期', columns='城市', values='温度', aggfunc='mean')  
print(pivot_table_df)  

输出:

城市        上海  北京  
日期  
2023-01-01   5   3  
2023-01-02   6   4  

3. 堆叠(Stack)

stack 方法用于将列索引转换为行索引,即将宽格式数据转换为长格式数据。

示例代码
# 创建示例 DataFrame  
df = pd.DataFrame({  
    '日期': ['2023-01-01', '2023-01-02'],  
    '北京': [3, 4],  
    '上海': [5, 6]  
})  
  
# 堆叠  
stacked_df = df.set_index('日期').stack().reset_index()  
stacked_df.columns = ['日期', '城市', '温度']  
print(stacked_df)  

输出:

        日期  城市  温度  
0  2023-01-01  北京   3  
1  2023-01-01  上海   5  
2  2023-01-02  北京   4  
3  2023-01-02  上海   6  

4. 取消堆叠(Unstack)

unstack 方法用于将行索引转换为列索引,即将长格式数据转换为宽格式数据。

示例代码
# 创建示例 DataFrame  
df = pd.DataFrame({  
    '日期': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'],  
    '城市': ['北京', '上海', '北京', '上海'],  
    '温度': [3, 5, 4, 6]  
})  
  
# 设置多重索引  
multi_index_df = df.set_index(['日期', '城市'])  
  
# 取消堆叠  
unstacked_df = multi_index_df.unstack('城市')  
print(unstacked_df)  

输出:

     温度  
城市      上海  北京  
日期  
2023-01-01   5   3  
2023-01-02   6   4  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司南锤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值