2017-02-28 7 views
3

私の現在のデータフレームにという名前の列を追加しようとしていますprev_tempPrev_tempは、場所によってグループ分けされ、その場所の気温に応じて前の日付になります。私は、これはpythonでする必要がありますただし条件がPython dataframe前の日付のデータを選択する列を追加します

lag(temp, 1) over (partition by location order by date) prev_temp 

であるSQLで

location date    temp prev_temp 
NY   2014-02-01  60  null 
NY   2014-02-02  40  60 
LA   2014-01-28  70  null 
LA   2014-02-02  80  70 

、そのいずれかです。ここで

location date    temp 
NY   2014-02-01  60 
NY   2014-02-02  40 
LA   2014-01-28  70 
LA   2014-02-02  80 

は私がする出力を必要とする方法のサンプルです大いに助けてください!

最終目標は、一時にprev_temp列の値に対して列を値を比較することです。

例の条件は、prev_temp一時に関連して減少するすべての行を削除することであろう。

答えて

4

パンダにshift with groupbyを使用できます。

import pandas as pd 
import io 

txt = io.String('''location date    temp 
        NY   2014-02-01  60 
        NY   2014-02-02  40 
        LA   2014-01-28  70 
        LA   2014-02-02  80''') 

df = pd.read_csv(txt, sep='\s+') 
df['prev_temp'] = df.groupby('location')['temp'].shift(1) 
+0

優秀、ありがとうございます! – Ariel