4

我有一个熊猫数据框,df其中包含两只股票的财务比率数据:

>>> df
                  ROIC    ROE
STK_ID RPT_Date              
600141 20110331  0.012  0.022
       20110630  0.031  0.063
       20110930  0.048  0.103
       20111231  0.063  0.122
       20120331  0.017  0.033
       20120630  0.032  0.077
       20120930  0.050  0.120
600809 20110331  0.536  0.218
       20110630  0.734  0.278
       20110930  0.806  0.293
       20111231  1.679  0.313
       20120331  0.666  0.165
       20120630  1.039  0.257
       20120930  1.287  0.359

我尝试在相同的“RPT_Date”上绘制股票“600141”和“600809”的比率“ROIC”和“ROE”来衡量它们的表现。

df.plot(kind='bar')下面给出

在此处输入图像描述

该图表在左侧绘制“600141”,在右侧绘制“600809”。在同一报告日比较两只股票的“ROIC”和“ROE”有些不便'RPT_Date'

我想要的是将由相同“RPT_Date”索引的“ROIC”和“ROE”条并排放置在同一组中(每组 4 个条),并且 x 轴仅标记“RPT_Date”,这将清楚地告诉两只股票的差异。

怎么做 ?

如果 I df.plot(kind='line'),它只显示两行,但应该是四行(2 个股票 * 2 个比率): 在此处输入图像描述

这是一个错误,还是我可以做些什么来纠正它?谢谢。

我正在使用熊猫 0.8.1。

4

1 回答 1

8

如果您取消堆叠 STK_ID,您可以创建每个 RPT_Date 的并排图。

 In [55]: dfu = df.unstack("STK_ID")

 In [56]: fig, axes = subplots(2,1)

 In [57]: dfu.plot(ax=axes[0], kind="bar")
 Out[57]: <matplotlib.axes.AxesSubplot at 0xb53070c>

 In [58]: dfu.plot(ax=axes[1])
 Out[58]: <matplotlib.axes.AxesSubplot at 0xb60e8cc>

在此处输入图像描述

于 2012-11-22T18:15:40.913 回答