首页 > 解决方案 > 将期间更改为日期时间

问题描述

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

如果生活很简单:

master_df = master_df['Month'].to_datetime()

背景故事:

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

在此处输入图像描述

我试过以下:

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

plot.bar(m_totals['Month'], m_totals['Showroom Visits']);

如果我尝试在图表中使用 period dtype,这是我得到的错误

ValueError: view limit minimum 0.0 is less than 1 and is an invalid Matplotlib date value. 

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

附加材料:

我用来创建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

结果数据框:

在此处输入图像描述

标签: pythonpandasmatplotlib

解决方案


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

m_totals['Month'] = m_totals['Month'].astype(str)
m_totals['Month'] = pd.to_datetime(m_totals['Month'])
m_totals.dtypes

在此处输入图像描述

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


推荐阅读