将MultiIndex Pandas DataFrame转换为Pivot

问题描述 投票:0回答:1

看起来像这样应该很容易,但是我无法一辈子使用它。

我有一个用于库存数据的数据框,如下所示。如何将下面的数据框转换为数据透视表,其中日期作为行,股票代码作为列,调整结束作为值(底部图片)

我正在使用以下代码获取数据框:pricing = web.DataReader(['MSFT', 'AAPL'], 'yahoo', datetime.datetime(2020, 1, 1), datetime.datetime(2020, 2, 10))

DataFrameDataFrame数据透视表

Pivot Table

python pandas dataframe pivot pivot-table
1个回答
0
投票

尝试使用:

pricing['Adj Close']

其中,

pricing = pd.DataFrame(np.random.randint(50,75,(10,6)), 
                  index=pd.date_range('01/2/20', periods=10, freq='D'),
                 columns=pd.MultiIndex.from_product([['Adj Close', 'Close', 'High'],['MSFT', 'AAPL']]))

           Adj Close      Close      High     
                MSFT AAPL  MSFT AAPL MSFT AAPL
2020-01-02        67   71    58   60   50   53
2020-01-03        54   59    64   72   62   50
2020-01-04        51   53    56   70   63   51
2020-01-05        64   71    74   62   68   62
2020-01-06        74   68    69   71   60   62
2020-01-07        55   55    51   70   74   72
2020-01-08        60   58    74   70   73   69
2020-01-09        51   58    72   54   50   61
2020-01-10        64   56    74   52   59   57
2020-01-11        55   50    68   61   60   59

使用Basic indexing on axis with MultiIndex我们只能选择0级的'Adj Close'。

pricing['Adj Close']

输出:

            MSFT  AAPL
2020-01-02    66    51
2020-01-03    67    67
2020-01-04    74    74
2020-01-05    73    66
2020-01-06    68    52
2020-01-07    67    50
2020-01-08    73    54
2020-01-09    66    52
2020-01-10    62    73
2020-01-11    61    71
© www.soinside.com 2019 - 2024. All rights reserved.