代码之家  ›  专栏  ›  技术社区  ›  Kartik

如何在Pandas透视表中使用group函数

  •  1
  • Kartik  · 技术社区  · 7 年前

    我在hh:mm:ss中有一个时间字段。ms格式。我正在使用此时间字段作为索引制作数据透视表。我想使用假设开始范围12:30到13:30、13:30:14:30等执行分组。

    示例:

    实际时间 12: 30个
    12: 31号
    12: 46
    13: 05年
    13: 22日
    13: 48个
    14: 05年

    1 回复  |  直到 7 年前
        1
  •  0
  •   jezrael    7 年前

    您可以使用 cut 具有 timedelta s、 用于范围使用 timedelta_range :

    df['ActualTime'] = pd.to_timedelta(df['ActualTime'].astype(str) + ':00')
    b  = pd.timedelta_range('0', '24:00:00', freq='30T')
    
    lab = [ str(i)[-8:-3] + ' - '+str(j)[-8:-3] for i,j in zip(b[:-1], b[1:]) ]
    df['a'] = pd.cut(df['ActualTime'], bins=b, labels=lab)
    print (df)
      ActualTime              a
    0   12:30:00  12:00 - 12:30
    1   12:31:00  12:30 - 13:00
    2   12:46:00  12:30 - 13:00
    3   13:05:00  13:00 - 13:30
    4   13:22:00  13:00 - 13:30
    5   13:48:00  13:30 - 14:00
    6   14:05:00  14:00 - 14:30