我是熊猫新手。 我发现它对时间序列数据很有用,但仅在采样间隔是标准单位时(例如,分钟,小时,天)。 如果我以更快的速度采样数据但数据采集等异常速率怎么办? 例如。 512 Hz(采样间隔~1.95 ms)
我可以在没有Pandas的情况下过关,但只是想知道它是否适合这种类型的时间序列,其中采样间隔不是标准时间单位的整数。
编辑: 我为不精确而道歉。 我设法让Pandas通过以下代码了解类似工程的时间序列(我们更习惯于以Hz为单位指定采样频率,而不是长周期,如天,周,月等)......
import pandas as pd
fs = 256. #Hz
period = str(int(round(1000000./fs)))+'U' #microseconds
rng = pd.date_range('1/1/2011', periods=len(dat), freq=period)
serialData = pd.Series(data,index = rng)
假设记录在2011年1月1日零时开始,则可以正常采样。
但是,从文档中可以看出这一点并不明显。
尝试以512Hz(频率的两倍)重新采样数据时,我也遇到了问题。我收到此错误消息:
C:\用户\安德鲁\阿纳康达\ lib中\站点包\大熊猫\核心\ format.py:1872: 运行时警告:在更大的情况下遇到无效值 has_large_values =(abs_vals> 1e8).any() C:\用户\安德鲁\蟒蛇\ LIB \站点包\大熊猫\核心\ format.py:1873年: RuntimeWarning:在较少的has_small_values =中遇到无效值 ((abs_vals< 10 **(-self.digits))& C:\用户\安德鲁\蟒蛇\ LIB \站点包\大熊猫\核心\ format.py:1874年: 运行时警告:在更大的情况下遇到无效值(abs_vals> 0))。任何()
如果我改变了样本期间来自' 3906U'到' 2S'并重新采样 ' 1S' (加倍采样频率)我没有得到这个错误。
我的数据长达800万个样本。如果我尝试绘制Pandas TimeSeries对象,我会收到内存错误。
如果我只是将数据视为1D numpy数组,我不会遇到这些问题。所以我认为我会坚持使用numpy来处理我通常使用的工程时间序列。
PS。我的编辑只是尝试帮助任何尝试使用长数据和基于Hz / KHz / MHz等进行采样的人。