使用日期时间变量合并 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"
此外,该文档包含有关根据您的要求更改时区和时间格式等选项的信息。
我有两个不同的数据集需要合并。
- 第一个数据集有每分钟的数据
- 第二个数据是每小时的信息。
我想将第一个数据集中的所有数据从分钟(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"
此外,该文档包含有关根据您的要求更改时区和时间格式等选项的信息。