pandas:绘制 DataFrame 时未显示 MultiIndex
Posted
技术标签:
【中文标题】pandas:绘制 DataFrame 时未显示 MultiIndex【英文标题】:pandas: MultiIndex not showing when plotting DataFrame 【发布时间】:2019-05-03 15:40:25 【问题描述】:我正在绘制以下 pandas MultiIndex DataFrame:
print(log_returns_weekly.head())
AAPL MSFT TSLA FB GOOGL
Date Date
2016 1 -0.079078 0.005278 -0.155689 0.093245 0.002512
2 -0.001288 -0.072344 0.003811 -0.048291 -0.059711
3 0.119746 0.082036 0.179948 0.064994 0.061744
4 -0.150731 -0.102087 0.046722 0.030044 -0.074852
5 0.069314 0.067842 -0.075598 0.010407 0.056264
第一个子索引代表年份,第二个子索引代表该特定年份的一周。
这可以通过 pandas 的 plot() 方法简单地实现;但是,如下所示,x 轴不会采用(年、周)格式,即 (2016, 1)、(2016, 2) 等。相反,它只是显示“日期、日期”-因此有人知道吗我该如何克服这个问题?
log_returns_weekly.plot(figsize(8,8))
【问题讨论】:
Pandas 没有绘图功能,它只是 matplotlib 的plt.plot
的包装器。您应该适当地标记您的问题。请阅读How to make good reproducible pandas examples 并提供可重现的数据集。
【参考方案1】:
您需要将您的多索引转换为单索引并添加一天,所以应该是这样的:2016-01-01
。
log1 = log_returns_weekly.set_index(log_returns_weekly.index.map(lambda x: pd.datetime(*x,1)))
log1.plot()
【讨论】:
以上是关于pandas:绘制 DataFrame 时未显示 MultiIndex的主要内容,如果未能解决你的问题,请参考以下文章
Pandas boxplot并排显示不同的DataFrame