将熊猫系列索引转换为日期时间

时间:2020-07-31 21:38:54

标签: datetime matplotlib

我有一个熊猫系列/数据框,其中包含一些内置的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)

非常感谢您!

2 个答案:

答案 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轴很好地绘制的日期时间类型的对象列表!