[英]How to remove transients in time-series data in Python (or Pandas)?
我有一個按時間順序排列的數據集,用於記錄熱泵的流量和溫度。 系統啟動的前幾分鍾,流量和溫度尚未完全開發,我希望將其過濾掉。
Time (min) Flow Supply T Return T
….
45 0 0 0
46 0 0 0
47 1.338375 92.711328 78.72152
48 2.267975 82.578552 74.239624
49 0.778125 96.073136 74.288664
50 0.778125 101.3998 74.686288
51 0.7885 102.1189 74.490528
….
例如,運行的前3分鍾(從47-49分鍾開始),請勿對數據進行任何計算。 我可以使用循環來做到這一點,但是數據集非常大(> 200 mb的文本文件),並且要花很長時間才能遍歷。 我想知道是否有更有效的方法將其拔出,也許使用熊貓?
任何幫助或建議,不勝感激! 提前致謝!!
請嘗試以下操作,我認為它應該起作用,基本上它會過濾掉其中n-3
處的行不等於0且不是NaN
這假設當沒有流時您的值為0:
In [12]:
df[(df.Flow.shift(3)!=0) & (df.Flow.shift(3).notnull())]
Out[12]:
Time_(min) Flow Supply_T Return_T
5 50 0.778125 101.3998 74.686288
6 51 0.788500 102.1189 74.490528
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.