2017-01-25 3 views
2

私はpandas.tseries.index.DatetimeIndexのシリーズがあります。これは、基本的に2016年の平日です。シリーズの日数の連続した差異を見つける簡単でエレガントな方法はありますか? .diff()は、整数型または浮動型のDataFrameカラムの場合と同じです。Pandas DatetimeIndexシリーズの違いを数日以内に得る最良の方法は?

import pandas as pd 
import numpy as np 
ds = pd.date_range("2016-01-01","2016-12-31",freq='B') 

# I was hoping for something like this: 
ds.diff().days 

# this gives me what I want, but it is ugly and unintuitive 
np.diff(ds)/86400000000000 

私はまた、約np.diff(ds.date)を考えたが、それは私にdatetime.timedeltaのndarrayを与える、と私はforループなし整数配列/シリーズにそれを変換する方法がわかりません。

+1

'ds.to_series()デフ()'。 ? – MaxU

答えて

4

これを試してみてください。

In [154]: ds.to_series().diff() 
Out[154]: 
2016-01-01  NaT 
2016-01-04 3 days 
2016-01-05 1 days 
2016-01-06 1 days 
2016-01-07 1 days 
2016-01-08 1 days 
2016-01-11 3 days 
2016-01-12 1 days 
2016-01-13 1 days 
2016-01-14 1 days 
2016-01-15 1 days 
2016-01-18 3 days 
2016-01-19 1 days 
2016-01-20 1 days 
2016-01-21 1 days 
2016-01-22 1 days 
2016-01-25 3 days 
2016-01-26 1 days 
2016-01-27 1 days 
2016-01-28 1 days 
2016-01-29 1 days 
2016-02-01 3 days 
2016-02-02 1 days 
2016-02-03 1 days 
2016-02-04 1 days 
       ... 
2

私はあなたが数値の出力が必要な場合Index.to_series、その後Series.dt.daysを追加必要があると思う:

print (ds.to_series().diff().dt.days) 
2016-01-01 NaN 
2016-01-04 3.0 
2016-01-05 1.0 
2016-01-06 1.0 
2016-01-07 1.0 
2016-01-08 1.0 
2016-01-11 3.0 
2016-01-12 1.0 
2016-01-13 1.0 
2016-01-14 1.0 
2016-01-15 1.0 
2016-01-18 3.0 
2016-01-19 1.0 
2016-01-20 1.0 
2016-01-21 1.0 
2016-01-22 1.0 
2016-01-25 3.0 
2016-01-26 1.0 
2016-01-27 1.0 
2016-01-28 1.0 
2016-01-29 1.0 
2016-02-01 3.0 
2016-02-02 1.0 
2016-02-03 1.0 
2016-02-04 1.0 
2016-02-05 1.0 
2016-02-08 3.0 
2016-02-09 1.0 
2016-02-10 1.0 
2016-02-11 1.0 

2016-11-21 3.0 
2016-11-22 1.0 
2016-11-23 1.0 
2016-11-24 1.0 
2016-11-25 1.0 
2016-11-28 3.0 
2016-11-29 1.0 
2016-11-30 1.0 
2016-12-01 1.0 
2016-12-02 1.0 
2016-12-05 3.0 
2016-12-06 1.0 
2016-12-07 1.0 
2016-12-08 1.0 
2016-12-09 1.0 
2016-12-12 3.0 
2016-12-13 1.0 
2016-12-14 1.0 
2016-12-15 1.0 
2016-12-16 1.0 
2016-12-19 3.0 
2016-12-20 1.0 
2016-12-21 1.0 
2016-12-22 1.0 
2016-12-23 1.0 
2016-12-26 3.0 
2016-12-27 1.0 
2016-12-28 1.0 
2016-12-29 1.0 
2016-12-30 1.0 
Freq: B, dtype: float64 
関連する問題