从1分钟数据列到60分钟数据列

2024-09-28 12:15:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我见过相关的主题使用换位或轴心,但不能使它工作。 我有两列数据框,时间戳和分钟数据。你知道吗

我想转置数据帧,以便最终得到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做了60多分钟的循环, 但我想知道是否有更紧凑的方法来做这件事。你知道吗


Tags: 数据方法df主题datevalue时间groupby
2条回答

可以为DayHour和minute创建新列,然后透视表。你知道吗

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

用{}和{}从@TedPetrou获取{}

In [58]: (df.set_index([df.Date.dt.floor('h'), df.Date.dt.minute])['Value']
            .unstack().add_prefix('Minute'))
Out[58]:
Date                 Minute45  Minute46
Date
2017-01-01 16:00:00      12.0      22.0
2017-03-01 11:00:00      12.0       NaN

相关问题 更多 >

    热门问题