2017-02-28 76 views
3

我正在尋找將一列添加到我當前的數據框稱爲prev_tempPrev_temp按地點分組,根據地點的溫度取上一個日期。Python數據框添加一列,選擇prev日期的數據

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

這裏是我是如何輸出的樣本爲:

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 

在SQL的條件是

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

但是我需要這在Python,所以任何非常感謝!

最終目標是將價值溫度對價值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