Python 大熊猫不规则的、不连续的周期
我需要表示一系列事件。这些事件有点不寻常,因为它们是:Python 大熊猫不规则的、不连续的周期,python,pandas,time-series,Python,Pandas,Time Series,我需要表示一系列事件。这些事件有点不寻常,因为它们是: 非连续 非重叠 不规则持续时间 例如: 1200-1203 1210-1225 1304-1502 我想用Pandas.PeriodIndex来表示这些事件,但我不知道如何创建持续时间不规则的Period对象 我有两个问题: 是否有方法使用现有功能创建持续时间不规则的Period对象 如果没有,您能否建议如何修改Pandas以提供不规则的持续时间期间对象?(建议可以“使用定制的DateOffset类,并使用精心编制的onOffset
- 非连续
- 非重叠
- 不规则持续时间
- 1200-1203
- 1210-1225
- 1304-1502
Period
对象
我有两个问题:
Period
对象期间对象?(建议可以“使用定制的DateOffset类,并使用精心编制的onOffset、rollforward、rollback和apply方法”)
Period
的文档字符串表明,可以为“5分钟”指定任意持续时间,如5T
。我相信这个文档串是不正确的。运行pd.Period('2013-01-01',freq='5T')
会产生异常ValueError:仅支持mult==1
。我已经报告了Period
对象作为标量值,使用PeriodIndex
作为跨度序列。在未来的版本中将更好地支持具有任意起点和终点的不规则间隔”(我的重点)时段
,看起来非常简单但是我认为主要的障碍是说服周期索引
接受不同频率的周期。e、 g:
In [93]: pd.PeriodIndex([pd.Period('2000', freq='D'),
pd.Period('2001', freq='T')])
ValueError: 2001-01-01 00:00 is wrong freq
在PeriodIndex
中,似乎有一个中心假设,即每个周期都有相同的freq
一个可能的解决方案,具体取决于应用,是通过创建一个PeriodIndex来存储数据,该索引的周期等于处理数据所需的最小时间分辨率单位,然后将数据划分到每个事件的存储箱中,使剩余的存储箱为空。如果时间段为分钟,则必须通过日期时间,包括以下分钟:
pd.PeriodIndex([pd.Period('2000-01-01 00:00', freq='T'),
pd.Period('2001-01-01 00:00', freq='T')])
结果是:
PeriodIndex(['2000-01-01 00:00', '2001-01-01 00:00'], dtype='period[T]', freq='T')
我认为最好保持周期性,也就是说,规律性。比如说,我们可以称你所寻找的东西为“时间跨度”。一段时间在这里有什么帮助?例如,您能否为每个跨距创建一个“开始”列和一个“结束”列?请备份并解释您试图用数据实现的目标。嗨,丹。谢谢你的快速回复。您的建议与我现在计划实现的非常相似:我计划使用数据帧
。每行代表一个事件。索引将表示每个事件的开始时间,并且将有一个end
列来表示每个事件的结束时间。为了支持和解释我的最终目标:我正在编写一个“特征检测器”,它通过timeseries数据集运行,并识别原始数据中的“特征”,这些特征可以持续不同的持续时间。我有一个类似的问题,尽管我的周期是规则的,但我无法创建具有所需持续时间的周期-例如,我在Pandas文档中发现的“5000T”。这个问题似乎是众所周知的。“对于规则时间跨度,pandas使用Period对象作为标量值,PeriodIndex作为跨度序列。未来的版本将更好地支持具有任意起点和终点的不规则间隔。”不幸的是,如果“最小时间单位”非常小,这将是非常低效的。