![](/img/trans.png)
[英]pandas - getting first and last value from each day in a datetime dataframe
[英]first and last value of a Day in Pandas (Python)
我的數據很長一段時間(3個月),每15秒記錄一次。
第一個時間戳看起來像這樣:2017-04-01 00:00:00 lastTimestamp看起來像這樣:2017-04-01 23:59:45
現在,我正在尋找一種獲取“ Temp”列的第一個和最后一個值的方法。 最好在兩個新列中包含這兩個值。
我認為你需要resample
通過days
用骨料agg
first
和last
:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.