将多列Turn Time转换为DateTime行并实现多列名逆透视
解决方案:多时间列逆透视转换
方法1:Excel Power Query(无需编程)
- 选中原始数据区域,点击「数据」选项卡 → 「从表格/区域」,进入Power Query编辑器
- 选中所有非时间标识列(如ID、日期等),右键选择「逆透视其他列」
- 自动生成「属性」(原时间列名)和「值」(对应数值)两列,将它们分别重命名为「时间」和「数值」(可根据实际字段调整)
- 点击「关闭并上载」,即可得到目标格式的长表
方法2:Python Pandas(编程实现)
假设原始数据已存入DataFrame df,['ID', '日期']为非时间标识列(替换为你的实际列名),执行以下代码:
import pandas as pd # 执行逆透视 df_transformed = pd.melt( df, id_vars=['ID', '日期'], # 保留的标识列 var_name='时间', # 原时间列名转为新列名 value_name='数值' # 原时间列的数值对应新列名 ) # 可选:将时间列转为标准时间格式 df_transformed['时间'] = pd.to_datetime(df_transformed['时间'], format='%H:%M').dt.time
注意事项
- 两种方法均支持批量处理96个15分钟间隔的时间列,无需手动操作每一列
- 若原始时间列名格式不统一,可在逆透视后添加格式转换步骤(Power Query用「更改类型」,Pandas用
pd.to_datetime调整)
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

