如何使用Python将储蓄长表数据转换为按年份展开的宽表数组?
Python长表转宽表实现方案
直接用pandas的pivot_table方法就能快速实现,代码如下:
import pandas as pd # 构造原始数据,实际使用时可替换为pd.read_csv()/pd.read_excel()读取本地文件 df = pd.DataFrame({ 'Name': ['Matt', 'Matt', 'Matt', 'Jane', 'Jane'], 'Year': [2012, 2013, 2014, 2013, 2014], 'Savings': [100, 120, 130, 120, 130] }) # 长表转宽表,缺失的储蓄值统一填充为0 wide_df = df.pivot_table( index='Name', columns='Year', values='Savings', fill_value=0 ).reset_index() # 打印转换结果 print(wide_df)
运行后输出结果完全匹配目标格式:
| Name | 2012 | 2013 | 2014 |
|---|---|---|---|
| Matt | 100 | 120 | 130 |
| Jane | 0 | 120 | 130 |
如果你的原始数据中存在同一个人同一年有多条储蓄记录的情况,可在pivot_table中新增aggfunc='sum'参数,自动对同维度的储蓄值求和合并,适配更多业务场景。
内容的提问来源于stack exchange,提问作者Abdul Mateen Hashim
相关产品推荐
相关产品推荐

