2013-12-10 235 views
1

我試圖尋找這一點,很驚訝,我找不到任何東西。我們使用「Julian Day」一詞來表示一年中的哪一天(即2月1日是Julian Day 32)。我不知道這是否是一個區域術語,也可能是我找不到任何答案。熊貓日期時間與Julian日

基本上我有兩個文件。一個具有年,月,日,小時的標準日期格式。另一個是年,朱連日,小時。我嘗試使用pandas DataFrame函數對齊它們,不知道如何處理丟失的月份數據。熊貓是否能夠原生轉換?

我正在使用python 3.3和最新版本的Pandas。

謝謝!

回答

4

當您在Julian日期文件中讀取,你只需要提供一個自定義的日期解析功能。這裏有一個例子:

import datetime 
from io import StringIO 
import pandas 

datafile = StringIO("""\ 
jday,value 
2013-01,1 
2013-02,2 
2013-100,8 
2013-200,9 
""") 

dateparser = lambda x: datetime.datetime.strptime(x, '%Y-%j') 
df = pandas.read_csv(datafile, parse_dates=True, date_parser=dateparser, index_col=[0]) 

其中給出的df

  value 
jday    
2013-01-01  1 
2013-01-02  2 
2013-04-10  8 
2013-07-19  9 

我一直this page書籤和方便的「非常規」的日期解析需要這樣的人。 (我實際上並不認爲朱利安的日子很奇怪 - 我們一直在水利建模中使用它們)

2

嘗試dayofyear。儒略日實際上是一個完全不同的數字僅供參考,請參閱here

In [1]: pd.date_range('20130201',periods=5).dayofyear 
Out[1]: array([32, 33, 34, 35, 36], dtype=int32) 
+0

我意識到這實際上不是你的問題的答案,而是相反的。 – Jeff