毎日最長の連続ストリークのベクトル化されたカウント

スコッティ1-

発電所の1日の最長連続稼働時間を評価するには、1日あたりの最長ストリークを評価する必要があります。つまり、1日は個別の時間枠と見なされます。

したがって、データフレームに電力出力があるとしましょうdf

df = pd.Series(
    data=[
        *np.zeros(4), *(np.full(24*5, 19.5) + np.random.rand(24*5)), 
        *np.zeros(4), *(np.full(8, 19.5) + np.random.rand(8)), 
        *np.zeros(5), *(np.full(24, 19.5) + np.random.rand(24)), 
        *np.zeros(27), *(np.full(24, 19.5) + np.random.rand(24))], 
    index=pd.date_range(start='2019-07-01 00:00:00', periods=9*24, freq='1h'))

そして、「カットオフパワー」は1(それ以下のものはすべてオフと見なされます)です。これを使用して「オン」値をマスクし、シフトしてマスク自体と比較し、連続するの数をカウントしgroupsます。最後に、インデックスでgroupsごとにグループ化し、毎日の連続値をカウントしますconsec_group

mask = df > 1
groups = mask.ne(mask.shift()).cumsum()
consec_group = groups[mask].groupby(groups[mask].index.date).value_counts()

どちらが得られますか:

consec_group
Out[3]: 
2019-07-01  2    20
2019-07-02  2    24
2019-07-03  2    24
2019-07-04  2    24
2019-07-05  2    24
2019-07-06  4     8
            2     4
            6     3
2019-07-07  6    21
2019-07-09  8    24
dtype: int64

ただし、連続する各毎日のストリークの最大値設定したいので、ランタイムのない日付は、のようにゼロで表示する必要があります2019-07-08 7 0期待される結果を参照してください。

2019-07-01    20
2019-07-02    24
2019-07-03    24
2019-07-04    24
2019-07-05    24
2019-07-06     8
2019-07-07    21
2019-07-08     0
2019-07-09    24
dtype: int64

どんな助けでも大歓迎です!

ジェズリール

まずすることにより、第2のレベルを削除するSeries.reset_indexと、コールバックにより、第2の重複値を除外し、Series.asfreq-それは働いて、ため、.value_countsソートSeries

consec_group = (consec_group.reset_index(level=1, drop=True)[lambda x: ~x.index.duplicated()]
                            .asfreq('d', fill_value=0))
print (consec_group)

またはGroupBy.first:による解決策

consec_group = (consec_group.groupby(level=0)
                            .first() 
                            .asfreq('d', fill_value=0))

print (consec_group)
2019-07-01    20
2019-07-02    24
2019-07-03    24
2019-07-04    24
2019-07-05    24
2019-07-06     8
2019-07-07    21
2019-07-08     0
2019-07-09    24
Freq: D, dtype: int64

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ベクトル化された関数を使用して、ベクトル内の連続するゼロの最大数をカウントします

分類Dev

連続した日の「ストリーク」の行に実行カウントを追加する方法

分類Dev

7の連続スコアの各人の最長の文字列をカウントするSQLクエリ

分類Dev

SQLで連続してグループ化されたエントリの数をカウントします

分類Dev

ベースのパターン化されたベクトル

分類Dev

連続したイベントでグループ化された最初と最後のパンダの違い

分類Dev

グループごとの同じ値の最長連続カウント

分類Dev

C long変数の0の最長連続シーケンスの長さをカウントするにはどうすればよいですか?

分類Dev

連続する要素間の違いを見つけるベクトル化された方法?たぶんnp.diff()のバリエーション?

分類Dev

DiscordPythonスクリプト-接続されたサーバーでの毎日の投稿のスケジュールに関する問題

分類Dev

MySQLのカウント/ストリークまたは連続した日付の追跡-フォローアップ

分類Dev

各要素が指定されたベクトルからの連続したメンバーのペアであるリストを作成します

分類Dev

Pythonリスト内の連続した重複の最長シーケンス

分類Dev

ネストされたループのベクトル化

分類Dev

ネストされたforループのベクトル化

分類Dev

Rのベクトル化されたカーネル関数

分類Dev

日付のリストに基づいてクエリセットをフィルターし、毎日のカウントを取得するdjango

分類Dev

パンダのグループごとに連続した週の最長ストリークを取得します

分類Dev

ネストされたvのインクリメントカウンター-for

分類Dev

テキストフィールドの最長行をカウントするMySQLクエリ

分類Dev

BLOBストレージアカウントを介したAzureSQLServerの毎日のバックアップ

分類Dev

インストールされたソフトウェアのリストとインストール日を取得するPythonスクリプト

分類Dev

jQuery.countdownの最終日までブートストラップ4モーダルを開くためのリンクを設定し、カウントダウンが終了したらそれらのURLにリンクする方法は?

分類Dev

ネストされたレベルのJava 8ストリーム最適化

分類Dev

Rのグループごとの連続する連続値の長さをカウントします

分類Dev

ネストされたループのベクトル化とMATLABのifステートメント

分類Dev

arraylist javaで最長の連続ストリークを見つける

分類Dev

Linq EF-最適化されたクエリを使用して、特定の顧客のすべてのアカウント、カード、ローンなどをデータベースから収集する方法は?

分類Dev

テンプレート化されたベクトルのコンストラクター(数学の種類)

Related 関連記事

  1. 1

    ベクトル化された関数を使用して、ベクトル内の連続するゼロの最大数をカウントします

  2. 2

    連続した日の「ストリーク」の行に実行カウントを追加する方法

  3. 3

    7の連続スコアの各人の最長の文字列をカウントするSQLクエリ

  4. 4

    SQLで連続してグループ化されたエントリの数をカウントします

  5. 5

    ベースのパターン化されたベクトル

  6. 6

    連続したイベントでグループ化された最初と最後のパンダの違い

  7. 7

    グループごとの同じ値の最長連続カウント

  8. 8

    C long変数の0の最長連続シーケンスの長さをカウントするにはどうすればよいですか?

  9. 9

    連続する要素間の違いを見つけるベクトル化された方法?たぶんnp.diff()のバリエーション?

  10. 10

    DiscordPythonスクリプト-接続されたサーバーでの毎日の投稿のスケジュールに関する問題

  11. 11

    MySQLのカウント/ストリークまたは連続した日付の追跡-フォローアップ

  12. 12

    各要素が指定されたベクトルからの連続したメンバーのペアであるリストを作成します

  13. 13

    Pythonリスト内の連続した重複の最長シーケンス

  14. 14

    ネストされたループのベクトル化

  15. 15

    ネストされたforループのベクトル化

  16. 16

    Rのベクトル化されたカーネル関数

  17. 17

    日付のリストに基づいてクエリセットをフィルターし、毎日のカウントを取得するdjango

  18. 18

    パンダのグループごとに連続した週の最長ストリークを取得します

  19. 19

    ネストされたvのインクリメントカウンター-for

  20. 20

    テキストフィールドの最長行をカウントするMySQLクエリ

  21. 21

    BLOBストレージアカウントを介したAzureSQLServerの毎日のバックアップ

  22. 22

    インストールされたソフトウェアのリストとインストール日を取得するPythonスクリプト

  23. 23

    jQuery.countdownの最終日までブートストラップ4モーダルを開くためのリンクを設定し、カウントダウンが終了したらそれらのURLにリンクする方法は?

  24. 24

    ネストされたレベルのJava 8ストリーム最適化

  25. 25

    Rのグループごとの連続する連続値の長さをカウントします

  26. 26

    ネストされたループのベクトル化とMATLABのifステートメント

  27. 27

    arraylist javaで最長の連続ストリークを見つける

  28. 28

    Linq EF-最適化されたクエリを使用して、特定の顧客のすべてのアカウント、カード、ローンなどをデータベースから収集する方法は?

  29. 29

    テンプレート化されたベクトルのコンストラクター(数学の種類)

ホットタグ

アーカイブ