我试着寻找这个并且很惊讶我找不到任何东西。我们使用术语“朱利安日”来指代一年中的某一天而不管月份(即2月1日将是朱利安第32天)。我不知道这是否是一个区域术语,也许我找不到任何答案。
基本上我有两个文件。一个具有标准日期格式,包括年,月,日,小时。另一个有一年,朱利安日,小时。我正在尝试使用pandas DataFrame函数对齐它们,并且不知道如何处理丢失的月份数据。熊猫能够原生地转换吗?
我正在使用python 3.3和最新版本的Pandas。
谢谢!
答案 0 :(得分: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加入书签并方便“非常规”日期解析需求,例如这些。 (我实际上并不认为朱利安的日子很奇怪 - 我们一直在水力模型中使用它们)
答案 1 :(得分:3)
试试dayofyear
。 Julian Day实际上是一个完全不同的数字FYI,请参阅here
In [1]: pd.date_range('20130201',periods=5).dayofyear
Out[1]: array([32, 33, 34, 35, 36], dtype=int32)