2017-06-24 11 views
1

私は15秒ごとに記録された長い期間のデータ(3ヶ月)を持っています。パンダの最初と最後の値(Python)

最初のタイムスタンプは次のようになります。今私はへの道を探しています2017年4月1日23時59分45秒

:lastTimestampはこのようになります2017年4月1日午前0時00分〇​​〇秒 列 "Temp"の最初と最後の値を取得します。 この2つの値を2つの新しい列に入れるとよいでしょう。

答えて

1

私はあなたがaggfirstlastにより骨材とdaysresampleが必要だと思う:

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 

dfDatetimeIndexオミットパラメータ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 
+0

を、忘れてはいけません[accept](http://meta.stackexchange.com/a/5235/295067)it - 答えの横にあるチェックマーク( '✓')をクリックして、グレーで表示します記入してください。ありがとう。 – jezrael

関連する問題