如何用pandas实现指定DataFrame重塑(pivot_wider/pivot_longer)
Pandas DataFrame 重塑解决方案
直接用melt+pivot组合就能实现你要的效果,步骤如下:
完整代码示例
import pandas as pd # 构建原始DataFrame df = pd.DataFrame({ 'date': ['22-01', '22-01', '22-01'], 'location': ['A', 'B', 'C'], 'char1': ['a', 'b', 'c'], 'char2': ['x', 'y', 'z'] }) # 1. 用melt把char1/char2转为行结构 melted = df.melt(id_vars=['date', 'location'], value_vars=['char1', 'char2'], var_name='char', value_name='value') # 2. 用pivot把location转为列结构 pivoted = melted.pivot(index=['date', 'char'], columns='location', values='value').reset_index() # 3. 调整列名为要求的格式 pivoted.columns = [f'location.{col}' if col not in ['date', 'char'] else col for col in pivoted.columns] print(pivoted)
输出结果
date char location.A location.B location.C 0 22-01 char1 a b c 1 22-01 char2 x y z
内容的提问来源于stack exchange,提问作者bono
相关产品推荐
相关产品推荐

