Skip to main content
 首页 » 编程设计

python之Pandas 分钟数据列到 60 分钟列

2025年05月04日22grandyang

我已经看到使用转置或枢轴的相关主题,但无法使其正常工作。 我有两列数据框,时间戳和类似分钟的数据。

我想转置数据框,以便最终得到 61 列,如下所示;

老DF的样子

    Date                    Value    
0   2017-01-01 16:45        12   
1   2017-01-01 16:46        22   
    ...                     ... 
n   2017-03-01 11:45        12 

我希望新的 DF 本质上是

    DayHour           ...   Minute45   Minute46   ...    
0   2017-01-01 16     ...   12         22         ... 
    ...               ...   ...        ...        ... 
n   2017-03-01 11     ...   12         ...        ... 

我以某种方式设法通过 groupby 和 for 循环完成了 60 分钟, 但我想知道是否有更紧凑的方法来做到这一点。

请您参考如下方法:

您可以为 DayHour 和分钟创建新列,然后旋转表格。

df.assign(DayHour = df.Date.dt.floor('h'), minute=df.Date.dt.minute)\ 
  .pivot(index='DayHour', columns='minute', values='Value')\ 
  .add_prefix('Minute') 
 
minute               Minute45  Minute46 
DayHour                                 
2017-01-01 16:00:00      12.0      22.0 
2017-03-01 11:00:00      12.0       NaN