看起来像这样应该很容易,但是我无法一辈子使用它。
我有一个用于库存数据的数据框,如下所示。如何将下面的数据框转换为数据透视表,其中日期作为行,股票代码作为列,调整结束作为值(底部图片)
我正在使用以下代码获取数据框:pricing = web.DataReader(['MSFT', 'AAPL'], 'yahoo', datetime.datetime(2020, 1, 1), datetime.datetime(2020, 2, 10))
尝试使用:
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