我有一个熊猫系列/数据框,其中包含一些内置的pandas.core.indexes.base.Index
类型的时间索引。它是这样的:
Index(['2015-07-13', '2015-07-14',...],
dtype='object', length=1238)
我想将此时间索引(类似列表的事物)转换为严格datetime.date
类型的事物的列表,以便Matplotlib可以在x轴上绘制转换后的列表。
具体来说,我希望将其转换并具有类似于以下列表的格式:
[datetime.date(2015, 7, 13),datetime.date(2015, 7, 14),datetime.date(2015, 7, 15),
datetime.date(2015, 7, 16),...]
顺便说一句,我上面列出的方法是通过以下简单的代码块进行的:
dates = [datetime.date(2015, 7, 13)]
num=len(ts_test.index)
for _ in range(num-1):
dates.append(dates[-1] + datetime.timedelta(days=1))
问题是我尝试在x轴上绘制的时间索引跳过了周末,因此,这里的“日期”列表包含所有不需要的周末和假期。
所以简单地说,如何将字符串'2015-07-13'
转换为datetime.date(2015, 7, 13)
?
非常感谢您!
答案 0 :(得分:1)
如果要将字符串类型的索引列转换为时间戳类型的索引列,一个简单的解决方案可能是:
dates_test.index = pd.to_datetime(dates_test.index)
要稍后提取列表:
timeList = dates_test.index.to_list()
答案 1 :(得分:0)
我遇到了一个解决方案,效果很好!
dates_test=[]
for i in ts_test.index:
date_str=i
format_str='%Y-%m-%d'
datetime_obj = datetime.datetime.strptime(date_str, format_str)
dates_test.append(datetime_obj.date())
因此,现在您已经设法将str列表转换为Matplotlib可以完全处理并沿X轴很好地绘制的日期时间类型的对象列表!