熊猫约会时间与朱利安日

时间:2013-12-10 16:55:10

标签: python pandas

我试着寻找这个并且很惊讶我找不到任何东西。我们使用术语“朱利安日”来指代一年中的某一天而不管月份(即2月1日将是朱利安第32天)。我不知道这是否是一个区域术语,也许我找不到任何答案。

基本上我有两个文件。一个具有标准日期格式,包括年,月,日,小时。另一个有一年,朱利安日,小时。我正在尝试使用pandas DataFrame函数对齐它们,并且不知道如何处理丢失的月份数据。熊猫能够原生地转换吗?

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

谢谢!

2 个答案:

答案 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)