从 yfinance 到使用 pandas 操作数据框

From yfinance to manipulate dataframe with pandas

你好,我是 python 和 pandas 的新手,我需要一些帮助来处理 yfinance 数据帧输出

我正在尝试使用以下代码通过 yfinance 从 yahoo finance 抓取一些市场数据:

data = yf.download("DYAN.JK CENT.JK", start="2015-01-01", 
                   end="2018-12-31", interval="1mo", group_by='tickers')

并获取此数据帧输出:

             DYAN.JK                                              CENT.JK
Date         Open   High    Low  Close   Adj Close       Volume   Open        High        Low        Close
2015-01-01   138.0  142.0  121.0  121.0  118.931625   37380000.0  158.462952  167.222214  155.277771 155.277771  ... 
2015-02-01   122.0  142.0  110.0  122.0  119.914528  375925600.0  155.277771  156.870361  155.277771 155.277771  ... 
2015-03-01   121.0  123.0  102.0  103.0  101.239319   70775500.0  155.277771  155.277771  131.388885 155.277771  ... 
2015-04-01   105.0  107.0   74.0   76.0   74.700851   62136500.0  155.277771  155.277771  128.203705 151.296295  ... 
...          ...    ...    ...    ...    ...     ...  ...         ...         ...         ...    

我想知道如何使用 pandas melt 将数据框操作为这种格式:

Date       Ticker  Open   High   Low    Close  Adj Close   Volume
2015-01-01 DYAN.JK 138.0  142.0  121.0  121.0  118.931625   37380000.0
2015-02-01 DYAN.JK 122.0  142.0  110.0  122.0  119.914528  375925600.0
2015-03-01 DYAN.JK 121.0  123.0  102.0  103.0  101.239319   70775500.0
...        ...     ...    ...    ...    ...    ...         ...
2015-01-01 CENT.JK 158    167    155    155    ...         ...
2015-02-01 CENT.JK 155    156    155    155    ...         ...
2015-03-01 CENT.JK 155    155    131    155    ...         ...
...        ...     ...    ...    ...    ...    ...         ...

非常感谢您的帮助

你可以这样做:

data.stack(0).reset_index().rename(columns={'level_1':'Ticker'})