2013-02-04 29 views
2

我有一個數據幀,DF:如何根據日期創建單獨的跟蹤列?

df: 
      val 
date 
2012-01-01 4.2  
2012-01-02 3.7 
2012-01-03 6.2 
2012-01-04 1.2 
2012-01-05 2.4 
2012-01-06 2.3 

我想創造的是從0開始對指定的日期,並在相應的欄中填寫欄(假定日期在這種情況下是2012-01- 04):

df2: 
      val tracking 
date 
2012-01-01 4.2 -3 
2012-01-02 3.7 -2 
2012-01-03 6.2 -1 
2012-01-04 1.2 0 
2012-01-05 2.4 1 
2012-01-06 2.3 2 

我嘗試使用np.arange(),但遇到了麻煩圍繞我所需要的行。日期列設置爲索引(pandas df)。

謝謝。

回答

3

我認爲這樣做最簡單的方法是做它分爲兩個部分:

df['tracking'] = pd.np.arange(len(df)) 

In [12]: df 
Out[12]: 
      val tracking 
date      
2012-01-01 4.2   0 
2012-01-02 3.7   1 
2012-01-03 6.2   2 
2012-01-04 1.2   3 
2012-01-05 2.4   4 
2012-01-06 2.3   5 

df['tracking'] -= df.ix['2012-01-04']['tracking'] 

In [14]: df 
Out[14]: 
      val tracking 
date      
2012-01-01 4.2  -3 
2012-01-02 3.7  -2 
2012-01-03 6.2  -1 
2012-01-04 1.2   0 
2012-01-05 2.4   1 
2012-01-06 2.3   2 
+0

安迪,感謝您的幫助。 df目前實際上是一系列的。當我做df ['tracking'] = pd.np.arange(len(df))時,我得到'跟蹤不在這個系列!' 我該如何處理?謝謝。 – user1911092

+0

您可以簡單地將其設置爲DataFrame:'df = pd.DataFrame(df)':) *注意:最好只調用DataFrames df!* –

+0

同意。這真的很有幫助。謝謝。 – user1911092

相關問題