Python 中如何将指定格式的 DataFrame 按需求完成透视转换?
Pandas DataFrame 透视转换实现方案
你可以直接使用Pandas自带的透视方法完成转换,操作非常简单:
首先确认原始DataFrame的三列名称,这里假设原始表三列分别为类型、时间、指标值,你可以替换为你实际的列名使用。
- 如果你原始数据中
类型+时间的组合没有重复值,直接用pivot方法即可:
import pandas as pd # 这里的df就是你原始的DataFrame target_df = df.pivot( index="类型", # 要作为行索引的列名 columns="时间", # 要作为列名的列名 values="指标值" # 要填充到单元格的数值列名 )
- 如果存在同一
类型+时间组合下有多个数值需要聚合的情况,改用pivot_table方法指定聚合规则即可,比如求和、求均值,需要填充缺失值也可以直接在方法内设置:
# 以求和、缺失值填充为0为例 target_df = df.pivot_table( index="类型", columns="时间", values="指标值", aggfunc="sum", fill_value=0 )
如果转换后需要把行索引的类型恢复为普通列,追加一行代码即可:
target_df = target_df.reset_index()
如果转换后出现多层级的列名,你可以使用target_df.columns = target_df.columns.get_level_values(1)的方式调整为单层列名,匹配你需要的格式。
内容的提问来源于stack exchange,提问作者Shravan Kolya
相关产品推荐
相关产品推荐

