我有一個熊貓數據框爲其前6行類似如下:追加行到一個新的數據幀
Timestamp u1 u2 u3
0 0 0.00000 23.02712 30.46594
1 2 0.00000 22.31358 30.10915
2 4 0.00000 19.10267 25.47093
3 6 0.00000 18.38913 23.68700
4 8 0.00000 19.81620 23.68700
5 10 0.00000 18.03236 21.18952
此數據由數據記錄器捕獲和數據記錄器被在一定的觸發情況。意思是,時間戳值(以秒爲單位給出)並不總是遵循嚴格的順序,並且當數據記錄器處於非活動狀態時,數據在時間上可能存在間隙。
我試圖捕獲在每15分鐘捕獲的其他列中的最大u3值和相應值(意思是來自最大u3發生的相同行)。當轉換爲我的時間戳值時,這是每個15 x 60 x 100 = 90000
1/100秒。
我設法使用下面的腳本最大U3值的位置(只打印索引號現在):
counter = df.Timestamp.max()/90000
for i in range(counter):
df_temp = df[(df.Timestamp >= i*90000) & (df.Timestamp < (i+1)*90000)]
try:
print df_temp["u3"].argmax()
except ValueError:
print "NaN"
我所試圖做的是從這些地點收集全行將它們附加到一個新的數據框中,索引值是i
,在上面給出的腳本中。我怎樣才能得到整個行(因爲我知道通過argmax()
索引)並將其附加到一個新的數據框?還有NaN問題,意思是如果在所述間隔中沒有數據,那麼腳本應該爲該行中的所有列添加NaN。什麼是一個簡單的方法來做到這一點?
謝謝!
您使用過df.loc [index] =(value)嗎?您可以按照這種方式設置行。 – Crazy 2014-09-29 21:22:01