数据框索引dtype为dtype ='datetime64 [ns],该图显示索引年份为奇怪的#

时间:2020-07-25 21:20:01

标签: python pandas matplotlib

我有一个索引YYYY / MM / DD,在导入数据帧后从m / d / yy转换。我无法获得日期以正确显示在线条图中。我认为是因为matplotlib不支持dtype ='datetime64 [ns]。

DF的前5行:

             Town   Cases
2020-03-21  Red Bank    2
2020-03-22  Red Bank    2
2020-03-23  Red Bank    5
2020-03-24  Red Bank    20
2020-03-26  Red Bank    20

该图将日期作为下图。但是当我做一个

covid_cnt.index = pd.to_datetime(covid_cnt.index)
covid_cnt.sort_index(inplace = True)

索引正确列出为YYYY-MM-DD。不确定如何解决此问题。

DatetimeIndex(['2020-03-21', '2020-03-22', '2020-03-23', '2020-03-24',
           '2020-03-26', '2020-03-27', '2020-03-30', '2020-03-31',
           '2020-04-01', '2020-04-02',
           ...
           '2020-07-13', '2020-07-14', '2020-07-15', '2020-07-16',
           '2020-07-17', '2020-07-21', '2020-07-22', '2020-07-23',
           '2020-07-24', '2020-07-25'],
          dtype='datetime64[ns]', length=116, freq=None)

d

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

您使用了什么函数来绘制图形?我的情节(连同您的城镇和日期时间索引)创建了一个从2020-03-15到2020-07-15的情节

df = pd.DataFrame(data={'cases': [i for i in range(len(dates))],
                        'town': 'Red Bank'},
                 index=dates)
print(df.head())

            cases      town
2020-03-21      0  Red Bank
2020-03-22      1  Red Bank
2020-03-23      2  Red Bank
2020-03-24      3  Red Bank
2020-03-26      4  Red Bank

前三个值和索引类型:

df.index[0:3]

DatetimeIndex(['2020-03-21', '2020-03-22', '2020-03-23'], dtype='datetime64[ns]', freq=None)

我用命令df.plot();(在Jupyter笔记本中)生成了一个图。

您是如何插入屏幕截图的?

答案 1 :(得分:0)

鉴于我对熊猫非常陌生,因此将matplotlib降级为3.2.2解决了该问题。谢谢大家的帮助