python - 如何以 X 分钟/小时/秒的频率使用 pd.data_range()?
问题描述
我需要用 pandas 创建一个频繁的日期范围date_range()
。这适用于frequency=...
参数。但有时我的代码需要这些频率范围更长的频率。例如4
小时或5
分钟而不是一。
我该怎么做pd.date_range(first_X_datetime, last_X_datetime, freq=frequency)
?
如果没有更有效的方法,我的想法是创建一个 pd.date_range 然后删除未包含的索引。但是怎么做呢?(目前我想不出更好的方法)
解决方案
您始终可以根据需要自定义频率,而不仅仅是1 hour
或1 minute
。
In [237]: pd.date_range(start, end, freq='2h20min')
Out[237]:
DatetimeIndex(['2011-01-01 00:00:00', '2011-01-01 02:20:00',
'2011-01-01 04:40:00', '2011-01-01 07:00:00',
'2011-01-01 09:20:00', '2011-01-01 11:40:00',
'2011-01-01 14:00:00', '2011-01-01 16:20:00',
'2011-01-01 18:40:00', '2011-01-01 21:00:00'],
dtype='datetime64[ns]', freq='140T')
In [238]: pd.date_range(start, end, freq='1D10U')
Out[238]:
DatetimeIndex([ '2011-01-01 00:00:00', '2011-01-02 00:00:00.000010',
'2011-01-03 00:00:00.000020', '2011-01-04 00:00:00.000030',
'2011-01-05 00:00:00.000040', '2011-01-06 00:00:00.000050',
'2011-01-07 00:00:00.000060', '2011-01-08 00:00:00.000070',
'2011-01-09 00:00:00.000080', '2011-01-10 00:00:00.000090'],
dtype='datetime64[ns]', freq='86400000010U')
请在此处查看更多信息:
https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.date_range.html
推荐阅读
- javascript - Firefox 真的支持 Worker 构造函数的 `type` 选项吗?
- java - NotificationListenerService 在基于 MIUI 9 的系统中不起作用
- node.js - sequelize-auto --config 选项
- python - 如何在 python 中使用自定义编码来伪代码?
- node.js - 显示最后删除消息的“狙击”命令
- javascript - vue-router 不渲染子组件
- objective-c - "because it is not SIP-protected" - Apple event error in macOS Mojave
- sql - 查询计数有多少记录在日期范围之外
- php - PHP Elasticsearch 在字符串开头搜索
- javascript - ngx-datatable 高亮列