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

如何创建新的Pandas列,其中包含从时间戳计算出的每日总分钟数?

  •  1
  • pepe  · 技术社区  · 5 年前

    考虑到以下因素 df 其中时间戳不是索引:

       timestamp
    0  2020-10-23 12:20:00-04:00  
    1  2020-10-23 12:30:00-04:00  
    2  2020-10-23 12:40:00-04:00
    3  2020-10-23 12:50:00-04:00
    

    我正在尝试创建一个新专栏 minutes 包含从00:00:00开始计算的总分钟数。

       timestamp                      minutes
    0  2020-10-23 12:20:00-04:00      740
    1  2020-10-23 12:30:00-04:00      750
    2  2020-10-23 12:40:00-04:00      760
    3  2020-10-23 12:50:00-04:00      770
    

    我一直在努力 pd.timedelta 但是,我无法设置引用的开始时间(在我的情况下,我希望从开始计算分钟) 00:00:00 hs 分钟 应该是 整数 而不是绳子。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Quang Hoang    5 年前

    你可以用 dt.normalize 要得到一天,减去并除以timdelta 1T :

    df['minutes'] = (df.timestamp - df.timestamp.dt.normalize()) // pd.Timedelta('1T')
    

    df['minutes'] = df.timestamp.dt.hour * 60 + df.timestamp.dt.minute
    

    输出:

                      timestamp  minutes
    0 2020-10-23 12:20:00-04:00      740
    1 2020-10-23 12:30:00-04:00      750
    2 2020-10-23 12:40:00-04:00      760
    3 2020-10-23 12:50:00-04:00      770