Pandas如何基于指定列取值生成对应列名的新列实现长表转宽表
你需要的是长表转宽表的操作,以下是可直接运行的Pandas实现方案:
方案1:pivot方法(适配无重复匹配项场景)
如果你的数据中不存在「同一datetime、同一column对应多条data记录」的情况,直接用pivot即可:
result = df.pivot(columns='column', values='data')
方案2:set_index + unstack组合方案
逻辑更灵活,兼容性强:
result = df.set_index('column', append=True)['data'].unstack('column')
兼容重复匹配项场景
如果实际业务数据存在同维度多条记录的情况,可使用pivot_table指定聚合规则(示例用sum求和,可按需替换为mean、first等聚合函数):
import pandas as pd result = pd.pivot_table( df, index=df.index, columns='column', values='data', aggfunc='sum' )
以上代码运行后得到的result即为你需要的结构,无匹配值的位置会自动填充NaN。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

