读入DataFrame而不是Panel

时间:2017-09-23 18:32:40

标签: pandas pandas-datareader

我想同时阅读几个代码的引文。我正在使用:

import numpy as np
import pandas as pd
import pandas_datareader.data as web
import datetime
import matplotlib.pyplot as plt
%matplotlib inline
start = datetime.datetime(2017, 9, 20)
end = datetime.datetime(2017,9,22)
h = web.DataReader(["EWI", "EWG"], "yahoo", start, end)

......它似乎有效。 但是,数据被读入面板数据结构。如果我打印变量" h"我明白了:

<class 'pandas.core.panel.Panel'>
Dimensions: 6 (items) x 4 (major_axis) x 2 (minor_axis)
Items axis: Adj Close to Volume
Major_axis axis: 2017-09-22 00:00:00 to 2017-09-19 00:00:00
Minor_axis axis: EWG to EWI

我想:

  1. to&#34;见&#34;得到的面板值(我对熊猫来说相对较新)。
  2. 是否可以将面板展平为DataFrame? (IMO更好记录)
  3. 如果我读了&#34;调整后关闭&#34;对我来说绰绰有余。也许直接阅读DataFrame会更容易?
  4. 谢谢

1 个答案:

答案 0 :(得分:1)

对于MultiIndex DataFrame,我认为您需要Panel.to_frame

#with random data

df = h.to_frame()
print (df)
                  Adj Close     Close      High       Low      Open    Volume
major      minor                                                             
2013-01-01 EWI     0.471435  0.471435  0.471435  0.471435  0.471435  0.471435
           EWG    -1.190976 -1.190976 -1.190976 -1.190976 -1.190976 -1.190976
2013-01-02 EWI     1.432707  1.432707  1.432707  1.432707  1.432707  1.432707
           EWG    -0.312652 -0.312652 -0.312652 -0.312652 -0.312652 -0.312652
2013-01-03 EWI    -0.720589 -0.720589 -0.720589 -0.720589 -0.720589 -0.720589
           EWG     0.887163  0.887163  0.887163  0.887163  0.887163  0.887163
2013-01-04 EWI     0.859588  0.859588  0.859588  0.859588  0.859588  0.859588
           EWG    -0.636524 -0.636524 -0.636524 -0.636524 -0.636524 -0.636524

然后选择列:

s = df['Adj Close']
print (s)
major       minor
2013-01-01  EWI      0.471435
            EWG     -1.190976
2013-01-02  EWI      1.432707
            EWG     -0.312652
2013-01-03  EWI     -0.720589
            EWG      0.887163
2013-01-04  EWI      0.859588
            EWG     -0.636524
Name: Adj Close, dtype: float64

df1 = df[['Adj Close']]
print (df1)
                  Adj Close
major      minor           
2013-01-01 EWI     0.471435
           EWG    -1.190976
2013-01-02 EWI     1.432707
           EWG    -0.312652
2013-01-03 EWI    -0.720589
           EWG     0.887163
2013-01-04 EWI     0.859588
           EWG    -0.636524

注意:

将来Panel将是deprecated