2016-11-16 55 views
0

有關於如何在熊貓中創建日計數類型的列的問題。給定一個日期列表,我希望能夠計算從一個日期到前一個日期的差異。現在,我可以用簡單的減法來做到這一點,它會返回我一個timedelta對象,我認爲。如果我只想整數天,該怎麼辦?使用.days似乎與兩個日期一起工作,但我無法讓它與列一起工作。熊貓數據幀中的時間增量

比方說,我做的,

df['day_count'] = (df['INDEX_DATE'] - df['INDEX_DATE'].shift(1)) 

INDEX_DATE day_count 0 2009-10-06 NaT 1 2009-10-07 1 days 2 2009-10-08 1 days 3 2009-10-09 1 days 4 2009-10-12 3 days 5 2009-10-13 1 days

我得到「1天......我只想1.

我可以使用。天像這裏面確實回報我是一個數字,但它不能處理整個列。

(df['INDEX_DATE'][1] - df['INDEX_DATE'][0]).days 

如果我嘗試這樣:

df['day_count'] = (df['INDEX_DATE'] - df['INDEX_DATE'].shift(1)).days 

我得到
AttributeError錯誤的錯誤: '系列' 對象有沒有屬性 '天'

我可以解決「1天「,但我認爲必須有更好的方式來做到這一點。

+0

你想'DF [ 'DAY_COUNT'] =(DF [ 'INDEX_DATE'] - DF [ 'INDEX_DATE']轉向(1)。)dt.days' – EdChum

+0

感謝。 ,這個和MaxU的解決方案是有效的! – WhitneyChia

回答

2

試試這個:

In [197]: df['day_count'] = df.INDEX_DATE.diff().dt.days 

In [198]: df 
Out[198]: 
    INDEX_DATE day_count 
0 2009-10-06  NaN 
1 2009-10-07  1.0 
2 2009-10-08  1.0 
3 2009-10-09  1.0 
4 2009-10-12  3.0 
5 2009-10-13  1.0