我有一個看起來像這樣的日誌文件:(日期/時間 - 溫度 - 溼度)計算平均值對於每一個小時,以消除高峯和低谷
2016-05-17 21:17 18.5 39.2
2016-05-17 21:18 18.5 39.2
2016-05-17 21:19 18.6 39.3
2016-05-17 21:20 18.5 39.3
2016-05-17 21:21 18.5 39.3
2016-05-17 21:22 18.4 39.2
2016-05-17 21:23 18.5 39.3
2016-05-17 21:24 18.4 39.3
2016-05-17 21:25 18.5 39.4
2016-05-17 21:26 18.4 39.3
2016-05-17 21:27 18.3 39.4
2016-05-17 21:28 18.3 39.4
2016-05-17 21:29 18.4 39.5
2016-05-17 21:30 4.4 39.5
2016-05-17 21:31 18.4 39.5
2016-05-17 21:32 18.3 39.5
2016-05-17 21:33 18.3 39.5
2016-05-17 21:34 18.3 39.5
2016-05-17 21:35 18.3 39.5
2016-05-17 21:36 18.3 39.6
2016-05-17 21:37 18.3 39.6
2016-05-17 21:38 18.3 39.6
2016-05-17 21:39 18.3 39.6
2016-05-17 21:40 18.3 15.6
2016-05-17 21:41 18.2 39.5
我想消除顯示不正常的尖峯行和低點(錯誤的測量)。
我的方法:
用於每個小時,比這小時與平均內比較每個值計算平均溫度和溼度值。如果「溫度」或「溼度」與平均值相差太遠,則整行被踢。
我可以用熊貓做這個嗎?
到目前爲止,我只得到了df的設置。
df = pd.read_csv('Logger.csv',delimiter="\t", names =['Timestamp', 'Temperature',
'Humidity'],header=None, parse_dates=["Timestamp"], index_col="Timestamp").resample('H')
.mean().dropna()
所以我得到每小時的平均值。
問題:我可以使用大熊貓來比較每行的每個溫度和溼度值,並消除那些偏離計算平均值5°C或5%的值嗎?
編輯:所以我從日誌文件中發佈了更多信息,並在21:30和21:40「添加」了2個測量錯誤。這些測量誤差每天發生一次或兩次,這些都是我想消除的行。 數據通過Raspberry Pi和DHT22傳感器24小時/ 7天記錄(傳感器有一個導致錯誤測量的錯誤)
不太確定我理解你的問題。我想將良好的數據寫入一個新的.csv文件(good data.csv),並將錯誤的數據寫入一個不同的新的.csv文件(baddata.csv)。 對不起,如果我把你的問題寫錯了。
我喜歡計算日誌文件中每60分鐘的平均值,並比較逐行和相應小時的平均值。 有關頂部熊貓日誌例子給我:
Temperature Humidity
Timestamp
2016-05-17 21:00:00 17.82 38.464
所以我清理日誌將日期2016年5月17日,並在一小時內的每一個溫度值進行比較的想法21:00 - 22:00與17.82°C。 同樣我想用溼度做。
而這整個過程每天在日誌文件中每一小時。
如果我沒有說清楚,我很抱歉。
@凱爾:我想我可以在這種變化中玩一下。也許5°C有點縮小,但我認爲10°C可以做這項工作,也許10%溼潤。 日誌是在一個封閉的車庫,我認爲帽子應該工作。測量誤差我想擺脫常規測量值的相當大的免除。 @MaxU: 於是,我的代碼,但它沒有工作,我打它周圍來理解語法,這是我結束了:
logfile =pd.read_csv('/Users/Peter/Desktop/LearnPython/DataLoggerTEST.csv',header=None, delimiter="\t",names['Timestamp','Temperature','Humidity'],index_col=0,parse_dates='Timestamp')
df=[logfile[['Temperature','Humidity']].groupby(pd.TimeGrouper('1H')).transform('mean').abs().query('Temperature > 5 and Humidity > 5').index]
我得到的是每次mean
值小時 輸出(摘錄):
Date/Time
2016-05-17 21:17:00 17.82 38.464
2016-05-17 21:18:00 17.82 38.464
2016-05-17 21:19:00 17.82 38.464
2016-05-17 21:20:00 17.82 38.464
2016-05-17 21:21:00 17.82 38.464
2016-05-17 21:22:00 17.82 38.464
2016-05-17 21:23:00 17.82 38.464
2016-05-17 21:24:00 17.82 38.464
2016-05-17 21:25:00 17.82 38.464
2016-05-17 21:26:00 17.82 38.464
2016-05-17 21:27:00 17.82 38.464
好像我應該得到mean
值與實際值之差的絕對值不工作的一部分
你能張貼有點大樣本DF和期望的DF?你想過濾原始DF還是重新採樣後? – MaxU
'消除5°C或5%偏離計算均值的那些值 - 是否意味着整個DF的全局「平均值」? – MaxU
如果記錄超出可接受的差異,那麼您可能需要確定可接受的差異,然後將其寫入不良數據 – kyle