熊猫一天的第一个和最后一个值(Python)

时间:2017-06-24 15:32:13

标签: python date pandas timestamp

我有很长一段时间的数据(3个月),每15秒记录一次。

第一个时间戳如下所示:2017-04-01 00:00:00 lastTimestamp看起来像这样:2017-04-01 23:59:45

现在我正在寻找一种获取“Temp”列的第一个和最后一个值的方法。 将这两个值放在两个新列中会很好。

1 个答案:

答案 0 :(得分:2)

我认为days需要resample agg firstlast汇总:

N = 100000
rng = pd.date_range('2011-01-01', periods=N, freq='15S')
df = pd.DataFrame({'Timestamp': rng, 'Temp': range(N)})  
#print (df)

df = df.resample('D', on='Timestamp')['Temp'].agg(['first','last'])
print (df)
            first   last
Timestamp               
2011-01-01      0   5759
2011-01-02   5760  11519
2011-01-03  11520  17279
2011-01-04  17280  23039
2011-01-05  23040  28799
2011-01-06  28800  34559
2011-01-07  34560  40319
2011-01-08  40320  46079
2011-01-09  46080  51839
2011-01-10  51840  57599
2011-01-11  57600  63359
2011-01-12  63360  69119
2011-01-13  69120  74879
2011-01-14  74880  80639
2011-01-15  80640  86399
2011-01-16  86400  92159
2011-01-17  92160  97919
2011-01-18  97920  99999

如果df DatetimeIndex省略参数on

N = 100000
rng = pd.date_range('2011-01-01', periods=N, freq='15S')
df = pd.DataFrame({'Temp': range(N)}, index=rng)  
#print (df)

df = df.resample('D')['Temp'].agg(['first','last'])
print (df)
            first   last
2011-01-01      0   5759
2011-01-02   5760  11519
2011-01-03  11520  17279
2011-01-04  17280  23039
2011-01-05  23040  28799
2011-01-06  28800  34559
2011-01-07  34560  40319
2011-01-08  40320  46079
2011-01-09  46080  51839
2011-01-10  51840  57599
2011-01-11  57600  63359
2011-01-12  63360  69119
2011-01-13  69120  74879
2011-01-14  74880  80639
2011-01-15  80640  86399
2011-01-16  86400  92159
2011-01-17  92160  97919
2011-01-18  97920  99999