私はパンダが初めてです。時系列データには便利ですが、サンプリング間隔が標準単位 (分、時間、日など) の場合に限られます。データ取得など、はるかに高速だが異常なレートでデータをサンプリングした場合はどうなりますか? 例えば。512 Hz (サンプル間隔 ~1.95 ms)
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 (周波数の 2 倍) でリサンプリングしようとしたときにも問題が発生しました。次のエラー メッセージが表示されました。
C:\Users\Andrew\Anaconda\lib\site-packages\pandas\core\format.py:1872: RuntimeWarning: より大きい
has_large_values = (abs_vals > 1e8).any() C:\Users\Andrew\で無効な値が検出されましたAnaconda\lib\site-packages\pandas\core\format.py:1873: RuntimeWarning: 以下の has_small_values で無効な値が検出されました = ((abs_vals < 10 ** (-self.digits)) & C:\Users\Andrew\Anaconda \lib\site-packages\pandas\core\format.py:1874: RuntimeWarning: より大きい (abs_vals > 0)).any() で無効な値が検出されましたサンプル期間を '3906U' から '2S' に変更し、'1S' に再サンプルする (サンプリング周波数を 2 倍にする) と、このエラーは発生しません。
私のデータは 800 万サンプルの長さです。Pandas TimeSeries オブジェクトをプロットしようとすると、メモリ エラーが発生します。
データを 1D numpy 配列として扱うだけであれば、これらの問題は発生しません。したがって、私が通常使用するエンジニアリングの時系列については、numpy を使い続けると思います。
PS。私の編集は、長いデータと Hz/KHz/MHz などに基づくサンプリングで同様のことをしようとしている人を助けようとすることでした。