使用日期时间变量合并 Python 或 R 中的数据集

Merge datasets in Python or R using datetime variable

我有两个不同的数据集需要合并。

我想将第一个数据集中的所有数据从分钟(01/12/2020 00:00、01/12/2020 00:01、01/12/2020 00:02.....01/12/2020 00:59) 至 01/12/2020 至 00:00.

我怎样才能做到这一点?

由于您来自 R,如果您想将 Python 用于表格数据,请查看 pandas,它提供了一套用于处理此类数据集的综合工具。

在那里,我想你正在寻找 pandas.Series.dt.floor,它允许你对预期的时间单位执行地板操作,这里是小时:

series = pd.Series(
    ['2020-01-01 12:01:00', '2020-01-01 12:02:00', '2020-01-01 12:30:00', '2020-01-01 12:59:00'],
    name='timestamp',
    dtype="datetime64[ns]"
)
series.dt.floor('H')

这将 return

0   2020-01-01 12:00:00
1   2020-01-01 12:00:00
2   2020-01-01 12:00:00
3   2020-01-01 12:00:00

添加到 @nehalem 的 Python 解决方案中,这是一个使用 R 的解决方案。lubridate package 很棒,可以轻松处理日期和时间。

首先,将您的一系列日期时间字符转换为日期时间对象。

library(lubridate)
series <- c("01/12/2020 00:00", "01/12/2020 00:01", "01/12/2020 00:02", "01/12/2020 00:59", "01/12/2020 04:20")
series2 <- parse_date_time(series, "d m y H M") # specify current format of your data

这将得到:

> series2
[1] "2020-12-01 00:00:00 UTC" "2020-12-01 00:01:00 UTC" "2020-12-01 00:02:00 UTC"
[4] "2020-12-01 00:59:00 UTC" "2020-12-01 04:20:00 UTC"

最后,将分钟四舍五入为小时:

> series3 <- floor_date(series2, "hour")
> series3
[1] "2020-12-01 00:00:00 UTC" "2020-12-01 00:00:00 UTC" "2020-12-01 00:00:00 UTC"
[4] "2020-12-01 00:00:00 UTC" "2020-12-01 04:00:00 UTC"

此外,该文档包含有关根据您的要求更改时区和时间格式等选项的信息。