有没有一种方法可以将包含年和日的字符串转换为熊猫时间戳?
例如
a_str = '2000120' # year 2000, day 120
我试过了:
pd.Timestamp(year=a_str[:4], dayofyear=a_str[4:])
但是我得到这个错误
*** TypeError: __new__() got an unexpected keyword argument 'dayofyear'
如何解决这个问题?
最佳答案
您可以使用%j
,它是一年中的一天:
In [11]: dt.datetime.strptime("2000120", "%Y%j")
Out[11]: datetime.datetime(2000, 4, 29, 0, 0)
In [12]: pd.to_datetime("2000120", format="%Y%j")
Out[12]: Timestamp('2000-04-29 00:00:00')
注意:虽然文档说:
一年中的一天,以零填充的十进制数字表示。
事实并非如此(即使不是零填充它也可以工作):
In [13]: dt.datetime.strptime("200020", "%Y%j")
Out[13]: datetime.datetime(2000, 1, 20, 0, 0)
In [14]: pd.to_datetime("200020", format="%Y%j")
Out[14]: Timestamp('2000-01-20 00:00:00')
我认为您不能在此处使用Timestamp构造函数,而必须使用
to_datetime
方法(允许您传递format
)。关于python - 将年中的年和日转换为 Pandas 时间戳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57087438/