我有一个熊猫数据框为其前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