将期间更改为日期时间

Gar*_*ott 5 python matplotlib pandas

我的目标是将周期转换为日期时间。

如果生活很简单:

master_df = master_df['Month'].to_datetime()
Run Code Online (Sandbox Code Playgroud)

背景故事:

我构建了一个新的数据框架,最初对每月总计进行求和,并通过将时间戳转换为周期来创建“月份”列。现在我想将该时间段转换回时间戳,以便我可以使用 matplotlib 创建绘图。

在此输入图像描述

我尝试过以下操作:

  • 阅读period.to_timestamp的文档。

  • 转换为字符串,然后返回日期时间。仍然保留期间问题并且不会转换。

  • 在 Stackoverflow 中提出了几个类似的问题,但似乎无法让它发挥作用。

一个简单的目标是绘制以下内容:

plot.bar(m_totals['Month'], m_totals['Showroom Visits']);
Run Code Online (Sandbox Code Playgroud)

这是如果我尝试在图表中使用周期数据类型时出现的错误

ValueError: view limit minimum 0.0 is less than 1 and is an invalid Matplotlib date value. 
Run Code Online (Sandbox Code Playgroud)

如果您将非日期时间值传递给具有日期时间单位的轴,通常会发生这种情况。

附加材料:

我用来创建Month专栏的代码(其中创建了期间问题):

master_df['Month'] = master_df['Entry Date'].dt.to_period('M')

我用来分组每月总计的代码:

m_sums = master_df.groupby(['DealerName','Month']).sum().drop(columns={'Avg. Response Time','Closing Percent'})

m_means = master_df.groupby(['DealerName','Month']).mean()
m_means = m_means[['Avg. Response Time','Closing Percent']]

m_totals = m_sums.join(m_means)
m_totals.reset_index(inplace=True)
m_totals
Run Code Online (Sandbox Code Playgroud)

生成的数据框:

在此输入图像描述

Gar*_*ott 13

我能够将句点类型转换为字符串,然后转换为日期时间。只是无法直接从期间转到日期时间。

m_totals['Month'] = m_totals['Month'].astype(str)
m_totals['Month'] = pd.to_datetime(m_totals['Month'])
m_totals.dtypes
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我希望我没有因为没有提供整个数据帧而被否决。