2017-10-06 140 views
0

我有一个数据集,我试图根据date-time可视化数据。我转换的时间串入date-time格式由熊猫的阴谋给出了正确的阴谋,而matplotlib给出的错误

dataset = pd.read_csv('price.csv') 
dataset2=dataset[['Date','MCP']] 
dataset2['Date']=pd.to_datetime(dataset2['Date']) 

现在matplotlib

dataset2.plot() 

correct plot

但同样绘图,matplotlib

plt.plot(dataset2.index,dataset2['MCP']) 

wrong plot

有人可以向我解释发生了什么事吗?我是否使用错误的方法或其他方法将string转换为date-time

+0

我们甚至不知道数据的样子。但我想问题是它不是按顺序排序的。 – ImportanceOfBeingErnest

+0

对不起,@ImportanceOfBeingErnest我会发布一个数据的快照,但它被连续排序。问题在于日期时间的格式。在一天结束时,它曾经将“日”部分视为月份,并一直延续到下个月。我将编辑我的解决方案,以包括详细的问题解释。所以,如果你可以帮助matplotlib为什么这样认为它和大熊猫解释正确 – Yash

+0

我仍然是问题是由未分类的数据造成的。当然,这可能是由于它没有被正确读取而造成的。如果没有[数据]的数据(不是实际的数据,但有一些数据来重现这个问题),我不认为人们可以进一步提供帮助。 – ImportanceOfBeingErnest

回答

0

我找到了解决问题的办法,但如果有人可以解释的原因

dataset2['Date']=pd.to_datetime(dataset2['Date']).dt.strftime('%d/%m/%Y %H:%M:%S') 
dataset2['Date']=pd.to_datetime(dataset2['Date']) 

大熊猫在默认情况下将其转换成不同的格式,所以我必须把它转换回字符串与正确的格式由matplotlib可以接受的,然后再次将字符串转换为日期时间。有没有其他方法可以做到这一点?

plt.plot(dataset2['Date'],dataset2['MCP']) 

plot

0

我想通了什么matplotlib解释,那就是: 只是简单的转换日期时间使用

dataset2['Date']=pd.to_datetime(dataset2['Date']) 

snapshot of data

服药后第一个96个值(之后的日期改变),它的工作原理应该如此。 但之后(以第二天的价值等)它认为时间戳的'日'部分为月,并延长至下个月(直到出现该特定值)。

erroneous plot

P.S.-不得不写的第二个答案,因为不允许嵌入超过2个图像直到声誉10