You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas透视DataFrame:将日期行转换为日期列?

解决方法:用pandas的pivot实现行列转换

嘿,这个需求刚好是pandas擅长的宽表/长表转换场景,用pivot方法就能一步到位!我给你拆解具体步骤:

1. 先构造测试数据(方便你复现)

首先把你提供的原始数据用pandas构造出来,这样你可以直接运行测试:

import pandas as pd

# 你的原始DataFrame
df = pd.DataFrame({
    'date': ['2020-12-24', '2020-12-24', '2020-12-25', '2020-12-25'],
    'time': ['17:01:00', '17:00:00', '17:01:00', '17:00:00'],
    'price': [10, 11, 11, 12]
})

2. 核心转换代码

用pivot方法指定行、列、值的对应关系,再做一点点格式调整:

# 执行转换:time作为行,date转成列,price填充单元格
result = df.pivot(index='time', columns='date', values='price').reset_index()

# 去掉列名的层级标签,让表头和目标格式一致
result.columns.name = None

# 如果需要和目标格式的time顺序完全匹配(17:01在前,17:00在后),可以加排序
result = result.sort_values('time', ascending=False).reset_index(drop=True)

3. 最终结果

运行后你会得到和目标完全一致的DataFrame:

time  2020-12-24  2020-12-25
0  17:01:00          10          11
1  17:00:00          11          12

简单解释下参数:

  • index='time':指定把time列作为结果的行
  • columns='date':把date列的唯一值转成结果的列
  • values='price':用price的值填充对应的单元格
  • reset_index():把time从行索引变回普通列,符合目标格式
  • sort_values:调整行的顺序,和你给出的目标完全对齐

内容的提问来源于stack exchange,提问作者Denly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:12:59