如何将三列长表时间序列DataFrame转换为参数展开的指定宽表格式?
实现方法
这是典型的长格式数据表转宽格式数据表的需求,直接使用pandas内置的pivot方法即可完成转换,代码如下:
import pandas as pd # 如果你还没有加载原始数据,先从你提供的字典加载: # raw_data = {你贴的原始数据字典} # df = pd.DataFrame(raw_data) # 核心转换逻辑 result_df = df.pivot( index='Timestamp', # 保留时间戳作为行索引 columns='Parameter', # 将Parameter列的不同取值展开为新列 values='Value' # 用Value列的数值填充展开后的单元格 ).reset_index() # 将索引中的Timestamp还原为普通列 # 如果你需要将列名调整为和你样例一致的小写timestamp,可以加一步重命名: result_df = result_df.rename(columns={'Timestamp': 'timestamp'})
补充说明
如果你的实际数据中存在同一时间戳下同一个参数有多个数值的情况,可以替换为pivot_table方法指定聚合规则,比如取均值:
result_df = df.pivot_table( index='Timestamp', columns='Parameter', values='Value', aggfunc='mean' # 可根据需求替换为sum、first等聚合函数 ).reset_index()
内容的提问来源于stack exchange,提问作者Ayush Sinha
相关产品推荐
相关产品推荐

