python - 将 Pandas 时间戳四舍五入到分钟

标签 python pandas

我想使用 pd_date_range() 根据开始和结束时间戳(从纪元开始以微秒为单位)每隔 1 分钟创建一个 DateTimeIndex。为此,我需要向上舍入开始时间戳并向下舍入结束时间戳。这是我目前所拥有的:

import pandas as pd
start = 1406507532491431
end = 1406535228420914

start_ts = pd.to_datetime(start, unit='us') # Timestamp('2014-07-28 00:32:12.491431')
end_ts = pd.to_datetime(end, unit='us') # Timestamp('2014-07-28 08:13:48.420914')

我要四舍五入:

start_tsTimestamp('2014-07-28 00:32')

end_tsTimestamp('2014-07-28 08:14')

我该怎么做?

最佳答案

从 0.18 版开始,Pandas 内置了 datetime-like rounding functionality :

start_ts.round('min')  # Timestamp('2014-07-28 00:32:00')
end_ts.round('min')    # Timestamp('2014-07-28 08:14:00')

如果需要强制向上或向下舍入,也可以使用 .ceil.floor


编辑: 根据 OP 的要求,上面的代码适用于原始 pd.Timestamp。如果您使用的是 pd.Series,请使用 dt 访问器:

s = pd.Series(pd.to_datetime([1406507532491431000, 1406535228420914000]))
s.dt.round('min')

输出:

0   2014-07-28 00:32:00
1   2014-07-28 08:14:00
dtype: datetime64[ns]

关于python - 将 Pandas 时间戳四舍五入到分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27031169/

相关文章:

python - 在 python 中转换 64 位 Windows 日期时间

javascript - Flask上的聊天应用程序(一对一实现)

python - 合并两个具有不同日期时间索引的数据帧

python - 在 Dask 数据框操作中引用新创建的列

python - 为什么 matplotlib imshow() 显示转置图像?

python - 2d 矩阵的 Numpy 矩阵乘法得到 3d 矩阵

python - Plotly:如何使用 Plotly Express 组合散点图和线图?

python - Pandas :使用枢轴函数进行复杂列转置的更快方法

python - 使用 Groupby Pandas DataFrame 手动计算 STD

python - Pandas - 自上次以来的行号大于 0 值