データの変化量を示す時系列の処理 – 正負の変化点をピックアップ(ジグザグ)

How do I draw a time series that shows the amount of change in data? – StackOverflow

グラフの描き方の問題ではなく,データから正負の変化点をピックアップしたいという話だとすると,

import pandas as pd
import numpy as np


l = [0, -1, -1,-1 , 2, -3, 1, 2, 3, 4, 5, 4, 3, -1, 2,8,11]
strings = """18:00:00
18:00:01
18:00:02
18:00:03
18:00:04
18:00:05
18:00:06
18:00:07
18:00:08
18:00:09
18:00:10
18:00:11
18:00:12
18:00:13
18:00:14
18:00:15
18:00:16"""

df = pd.DataFrame(l, pd.to_datetime(strings.splitlines()))
display(df)

a = np.sign(df[0].to_numpy())
m_ = a[1:] != a[:-1]
m = np.concatenate((m_, ~m_[-1:]))
df[m]
            0
2019-10-17 18:00:00 0
2019-10-17 18:00:01 -1
2019-10-17 18:00:02 -1
2019-10-17 18:00:03 -1
2019-10-17 18:00:04 2
2019-10-17 18:00:05 -3
2019-10-17 18:00:06 1
2019-10-17 18:00:07 2
2019-10-17 18:00:08 3
2019-10-17 18:00:09 4
2019-10-17 18:00:10 5
2019-10-17 18:00:11 4
2019-10-17 18:00:12 3
2019-10-17 18:00:13 -1
2019-10-17 18:00:14 2
2019-10-17 18:00:15 8
2019-10-17 18:00:16 11

            0
2019-10-17 18:00:00 0
2019-10-17 18:00:03 -1
2019-10-17 18:00:04 2
2019-10-17 18:00:05 -3
2019-10-17 18:00:12 3
2019-10-17 18:00:13 -1
2019-10-17 18:00:16 11
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください