前提・実現したいこと
・言語:Python3系
・開発環境:Anaconda
・IDE:Spyder
でデータ分析を行っています。
下記の【現状のデータ】のような1分単位の温度データとシステムの運転データ(0:停止、1:運転)がひと月分記録されたDataFrameを扱っています。
このデータを、運転時(Sysstatus=1)のデータのみを抽出しそれらのデータの平均値を計算し、下記の【作りたいデータ】のような1時間単位のデータを作成したいです。
######【現状のデータ(DataFrame)】
DATE TIME Tempreture1 Tempreture2 SysStatus
2020/5/1 0:00:00 18.75 17.91 0
2020/5/1 0:01:00 18.76 17.90 0
2020/5/1 0:02:00 18.76 17.91 0
2020/5/1 0:03:00 18.76 17.90 0
2020/5/1 0:04:00 18.77 17.91 1
2020/5/1 0:05:00 18.75 17.90 1
・
・
・
######【作りたいデータ(DataFrame)】
DATE TIME Tempreture1 Tempreture2 SysStatus
2020/5/1 0:00:00 18.75 17.91 0
2020/5/1 1:00:00 18.76 17.90 1
2020/5/1 2:00:00 18.76 17.91 1
2020/5/1 3:00:00 18.76 17.90 1
2020/5/1 4:00:00 18.77 17.91 0
2020/5/1 5:00:00 18.75 17.90 0
・
・
・
試したこと・課題
現状、「resample().mean()」を用いて平均値の計算を行おうと考えていましたが、下記のコードでは運転/停止の区別ができておらず、全てのデータを平均化の計算に用いている状態です。
python3
1DF=df.resample(rule='H').mean()
この計算を1時間のうち30分のみで運転が行われているならば、その30分間のデータを用いて平均値を計算し代表値としたいのですが、よい方法が思いつかず詰まっています。
何らかの関数を定義し、meanメソッドではなくapplyメソッドを用いることで問題を解決できるかとも考えましたが、初学者のためうまくいきませんでした。
拙い質問内容・文章となっていますが、ご回答よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/19 14:13