Interpreting Multiindex datetime(解释多索引日期时间)
本文介绍了解释多索引日期时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码:
import pandas as pd
from pandas import DataFrame as df
import matplotlib
from pandas_datareader import data as web
import matplotlib.pyplot as plt
import datetime
import warnings
warnings.filterwarnings("ignore")
start = datetime.date(2020,1,1)
end = datetime.date.today()
stock = 'fb'
data = web.DataReader(stock, 'yahoo', start, end)
data.index = pd.to_datetime(data.index, format ='%Y-%m-%d')
data = data[~data.index.duplicated(keep='first')]
data['year'] = data.index.year
data['month'] = data.index.month
data['week'] = data.index.week
data['day'] = data.index.day
data.set_index('year', append=True, inplace =True)
data.set_index('month',append=True,inplace=True)
data.set_index('week',append=True,inplace=True)
data.set_index('day',append=True,inplace=True)
fig, ax = plt.subplots(dpi=300, figsize =(30,4))
data.plot(y='Close', ax=ax, xlabel= 'Date')
plt.show()
要以更易读的年和月格式将多索引日期解释为x轴,我可以做些什么?例如以类似strftime('%y -%m')
格式。这里也提出了类似的问题:Renaming months from number to name in pandas
但我不知道如何使用它来重命名x轴。如有任何帮助,我们将不胜感激。
推荐答案
可以使用matplotlib中的日期。有关更多详细信息,请参阅以下链接:
https://matplotlib.org/stable/api/dates_api.html#matplotlib.dates.ConciseDateFormatter
以下是修改后的代码:
import pandas as pd
from pandas import DataFrame as df
import matplotlib
from pandas_datareader import data as web
import matplotlib.pyplot as plt
import datetime
import warnings
warnings.filterwarnings("ignore")
from matplotlib import dates as mdates
start = datetime.date(2020,1,1)
end = datetime.date.today()
stock = 'fb'
data = web.DataReader(stock, 'yahoo', start, end)
data.index = pd.to_datetime(data.index, format ='%Y-%m-%d')
data = data[~data.index.duplicated(keep='first')]
data['year'] = data.index.year
data['month'] = data.index.month
data['week'] = data.index.week
data['day'] = data.index.day
data.set_index('year', append=True, inplace =True)
data.set_index('month',append=True,inplace=True)
data.set_index('week',append=True,inplace=True)
data.set_index('day',append=True,inplace=True)
fig, ax = plt.subplots(dpi=300, figsize =(15,4))
plt.plot(data.index.get_level_values('Date'), data['Close'])
#--------------------------------------
#Feel free to try different options
#--------------------------------------
#locator = mdates.AutoDateLocator()
locator = mdates.MonthLocator()
formatter = mdates.ConciseDateFormatter(locator)
ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(formatter)
plt.show()
这里是 output。
这篇关于解释多索引日期时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:解释多索引日期时间
基础教程推荐
猜你喜欢
- 使用工作区API导入方法导入数据库笔记本(动态内 2022-09-21
- 在OpenCV中放大后,Python会捕捉图像的特定部分 2022-09-22
- 从顶点坐标创建三角网格 2022-09-21
- Python h5py-为什么我收到广播错误? 2022-09-21
- 获取多索引中某个级别的最后一个元素 2022-09-22
- 如何在hdf5文件的多个组之间拆分数据? 2022-09-21
- 如何将RPC与Volttron配合使用 2022-09-21
- 在 pandas 中使用带有多重索引的.loc 2022-09-22
- 如何防止Groupby超越指数? 2022-09-22
- 跟在带量词的前瞻后面有什么作用? 2022-09-22