2017-09-23 77 views
0

我想同时阅读几个代号的报价。我正在使用:读入DataFrame而不是面板

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. “看”得到的面板值(我是比较新的熊猫)。
  2. 是否可以将面板拼合成一个DataFrame? (国际海事组织它更好地记录)
  3. 如果我读了“调整关闭”对我来说,这将是绰绰有余。也许直接读入DataFrame会更容易?

谢谢

回答

1

我认为你需要多指标DataFramePanel.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

+1

hello jezrael, 它证明了很多帮助。不过,我最先得到最新的日期,而你最后得到它。 Major_axis轴:2017-09-22 00:00:00至2017-09-19 00:00:00 任何想法,为什么这可能发生在我身上? – vsoler

相关问题