2016-11-17 21 views
1

私はx軸上にある時間を求めて、時間に対してデータをプロットしています。特に、2014年12月3日から16日までの期間になります。時間はデータフレームのインデックスにあるため、わかりやすくなると思いました。私は、インデックスをチェックし、それが正常に見える:pandas date range予期しない動作

IV.index[0] 
Out[6]: Timestamp('2014-03-12 00:00:00') 
IV.index[-1] 
Out[5]: Timestamp('2014-12-16 00:00:00') 

しかし、私は日付の範囲として、私のダニを定義したいときには、本当に奇妙な何かが起こる:

xticks1 = pd.date_range(start=IV.index[0],end=IV.index[-1], freq='7D', normalize=True) 

xticks1 
Out[8]: 
DatetimeIndex(['2014-03-12', '2014-03-19', '2014-03-26', '2014-04-02', 
       '2014-04-09', '2014-04-16', '2014-04-23', '2014-04-30', 
       '2014-05-07', '2014-05-14', '2014-05-21', '2014-05-28', 
       '2014-06-04', '2014-06-11', '2014-06-18', '2014-06-25', 
       '2014-07-02', '2014-07-09', '2014-07-16', '2014-07-23', 
       '2014-07-30', '2014-08-06', '2014-08-13', '2014-08-20', 
       '2014-08-27', '2014-09-03', '2014-09-10', '2014-09-17', 
       '2014-09-24', '2014-10-01', '2014-10-08', '2014-10-15', 
       '2014-10-22', '2014-10-29', '2014-11-05', '2014-11-12', 
       '2014-11-19', '2014-11-26', '2014-12-03', '2014-12-10'], 
       dtype='datetime64[ns]', freq='7D') 

私は理解していない、なぜ?私は欲しかった私の範囲の日付['2014-12-03','2014-12-04' etc.]

実際に、今私は気づいた、何とか最初の日付(12月の3分の1)は、その月と日を交換した!今は3月12日です!誰も私はそれをdatetimeオブジェクトに変換するときにどのようにこれを修正するための任意のアイデアを持っていますか?これは私がそれをやった方法です:あなたが探しているもの

IV['DATE'] = pd.to_datetime(IV['DATE']) 
IV = IV.set_index("DATE") 
+0

...%Y-%M-%Dとする日付の形式を想定しているあなたは、彼らがある場合は、元の日付文字列が実際にどのように見えるかに投稿する必要があります'%Y-%d-%m ')' 2014-12-04'を実行すると 'IV ['DATE'] = pd.to_datetime(IV ['DATE']、format = '% – EdChum

答えて

2

はpd.to_datetimeの「フォーマット」引数です。お守り:

>>> date = '2014-03-12 00:00:00' 
>>> x=pd.to_datetime(date) 
>>> x 
10: Timestamp('2014-03-12 00:00:00') 
>>> x.month 
6: 3 
>>> x=pd.to_datetime(date,format='%Y-%d-%m %H:%M:%S') 
>>> x 
7: Timestamp('2014-12-03 00:00:00') 
>>> x.month 
8: 12 

パンダ