簡體   English   中英

如何刪除Python(或Pandas)中時間序列數據中的瞬變?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM