首页 > 解决方案 > 将时间戳系列转换为分钟系列数据 || Python

问题描述

我正在寻找将时间戳系列数据转换为分钟数据的方法。

例如: 05:30:00 是 330 分钟 13:10:00 是 790 分钟 如果日期发生变化并且时间戳是第二天,它会继续这个系列,比如 1440 + 第二天分钟。

0   2021-02-01 06:20:40
1   2021-02-01 05:25:45
2   2021-02-01 06:35:40
3   2021-02-01 05:32:45
4   2021-02-01 05:37:30
5   2021-02-01 05:39:22
6   2021-02-01 06:51:40
7   2021-02-01 06:10:04
8   2021-02-01 06:28:57
9   2021-02-01 05:49:23

这是虚拟数据。我不想循环每个元素并计算它,因为我的 DataFrame 中有多个时间戳列。

标签: pythonpython-3.xdataframedatetimetimestamp

解决方案


  • 首先,确保系列(有问题的 df 列)的 dtype 是 datetime
  • 现在减去您选择的日期,例如系列的第一个条目(您可以通过 获得normalize()
  • total_seconds结果timedelta系列并除以 60 得到分钟(//如果你不想要小数分钟,你也可以下限)

前任:

import pandas as pd

s = pd.Series(pd.to_datetime(["2021-02-01 06:00:00", 
                              "2021-02-01 09:00:00", 
                              "2021-02-02 01:00:00"]))

minutes = (s-s.iloc[0].normalize()).dt.total_seconds()/60

minutes
0     360.0
1     540.0
2    1500.0 # next day -> 1440 + time of current day
dtype: float64

推荐阅读