pandas - 将 pandas 数据框中的多列转换为时间戳 - 四舍五入到最近的 15 分钟间隔

标签 pandas dataframe

我的数据框中有 3 列日期、小时和分钟

         date  hour  minute
0  2018-01-01     0      10
1  2018-01-01     1      20
2  2018-01-01     2      50
3  2018-01-01     3      40
4  2018-01-01     4       7
5  2018-01-01     5       0
6  2018-01-01     6       2

我需要将这些列组合成 1 个时间戳列,但时间戳应四舍五入到最接近的 15 分钟间隔。

所以我的预期输出是

timestamp
2018-01-01 00:15
2018-01-01 01:15
2018-01-01 02:45
2018-01-01 03:45
2018-01-01 04:00
2018-01-01 05:00
2018-01-01 06:00

最佳答案

您还可以使用:

(pd.to_datetime(df['date']) +
 pd.to_timedelta(df['hour'], 'H') +
 pd.to_timedelta(df['minute'], 'm')).dt.round('15min')

关于pandas - 将 pandas 数据框中的多列转换为时间戳 - 四舍五入到最近的 15 分钟间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53822618/

相关文章:

python - 在字典中检查多个 if 条件的优雅方法

r - 以节省内存的方式增长 data.frame

r - 创建按组拆分的列车测试

python - 计算所有列中具有相同值的行

python - 如何将 pandas 数据框列转换为 native python 数据类型?

python - 确定 Pandas df 列是否为数组

python pandas 试图减少对循环的依赖

python - 当每个值都是字典时将数据框保存到 Excel

python - 如果为 True,则 Pandas 保留列值,否则为 False

python - 如何将列名转换为 pandas 中的列值 - python