4

私はパンダのデータフレームdfに2つの株式の財務比率データが含まれています:

>>> 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

そして、株式「600141」と「600809」の比率「ROIC」と「ROE」を同じ「RPT_Date」に一緒にプロットして、パフォーマンスのベンチマークを試みます。

df.plot(kind='bar')以下に与える

ここに画像の説明を入力

チャートは左側に「600141」、右側に「600809」を描いています。同じレポート日付で 2 つの株式の「ROIC」と「ROE」を比較するのは、やや不便です'RPT_Date'

私が望むのは、同じ「RPT_Date」によってインデックス付けされた「ROIC」と「ROE」バーを同じグループに並べて配置することです (グループごとに 4 つのバー)。x 軸は「RPT_Date」のみにラベルを付けます。 2株の差。

どうやってするか ?

Idf.plot(kind='line')の場合、2 行しか表示されませんが、4 行 (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 に答える