为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas dataframeplot():显示x轴日期标签但不显示数据

Pandas dataframeplot():显示x轴日期标签但不显示数据

翻过高山走不出你 2023-06-27 17:17:00
我正在尝试将 pandas 数据框中的数据绘制为时间(年)的函数。数据摘要如下所示:           DATE    WALCL0    2010-08-18  23136621    2010-08-25  23010152    2010-09-01  23019963    2010-09-08  23058024    2010-09-15  2296079517  2020-07-15  6958604518  2020-07-22  6964755519  2020-07-29  6949032520  2020-08-05  6945237521  2020-08-12  6957277我尝试使用以下代码绘制数据:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesyears = mdates.YearLocator()   # every yearmonths = mdates.MonthLocator()  # every monthyears_fmt = mdates.DateFormatter('%Y')dfData = pd.read_csv(sPathIn+sFname, skiprows = 0)ax = dfData.plot()ax.xaxis.set_major_locator(years)ax.xaxis.set_major_formatter(years_fmt)ax.xaxis.set_minor_locator(months)datemin = np.datetime64(dfData['DATE'][0], 'Y')datemax = np.datetime64(dfData['DATE'].iloc[-1], 'Y') + np.timedelta64(1, 'Y')ax.set_xlim( datemin, datemax)     plt.show()当我运行此代码时,绘图轴显示正确,但时间序列数据 (WALCL) 未出现。如果我省略ax.set_xlim( datemin, datemax),则会显示时间序列数据,但 x 轴的格式不再正确(从 1970 年开始一直运行到 1971 年)。这是修改后的代码示例:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesyears = mdates.YearLocator()   # every yearmonths = mdates.MonthLocator()  # every monthyears_fmt = mdates.DateFormatter('%Y')sPathIn = "C:\\Users\\reg\\projects\\notes\\Political_Economy\\S&P+Fed-Assets\\"sFname = "WALCL.csv"这是回溯:Traceback (most recent call last):  File "C:\Users\reg\projects\Notes\Political_Economy\S&P+Fed-Assets\Python\s&p-fed-assets-v0.2.3.py", line 25, in <module>    dfData.set_index('DATE', inplace=True)  File "C:\Users\reg\Anaconda3\lib\site-packages\pandas\core\frame.py", line 4545, in set_index    raise KeyError(f"None of {missing} are in the columns")KeyError: "None of ['DATE'] are in the columns"    # load data    dfData = pd.read_csv(sPathIn+sFname, skiprows = 0, parse_dates=['DATE'], index_col='DATE')        #set up plot fxn    dfData.set_index('DATE', inplace=True)    ax = dfData.plot('DATE', 'WALCL')   
查看完整描述

1 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

  • 数据集位于资产:总资产:总资产(减去合并冲销):周三水平 (WALCL)

  • 使用with验证该DATE列是否采用日期时间格式。parse_dates.read_csv

设置DATE为索引

import pandas as pd

import numpy as np


# verify the DATE column is in a datetime format and set it as the index

dfData = pd.read_csv('WALCL.csv', skiprows=0, parse_dates=['DATE'], index_col='DATE')


# plot the data

ax = dfData.plot(figsize=(20, 8))


datemin = np.datetime64(dfData.index.min(), 'Y')

datemax = np.datetime64(dfData.index.max(), 'Y') + np.timedelta64(1, 'Y')

ax.set_xlim(datemin, datemax)

//img3.sycdn.imooc.com/649aa95d0001cc8811420487.jpg

保留DATE为专栏

import pandas as pd


# read file

dfData = pd.read_csv('WALCL.csv', skiprows=0, parse_dates=['DATE'])


# plot data

ax = dfData.plot('DATE', 'WALCL', figsize=(20, 8))

//img2.sycdn.imooc.com/649aa96b0001ba1111500486.jpg

查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信