Python:创建具有分层列的DataFrame并添加列



我有一个具有多索引的DataFrame,如下所示:

df:
open   close 
date         Symbol
2022-01-01   SPY       100    102
TSLA      232    245
2022-01-02   SPY       103    100
TSLA      222    220
AAPL      143    147

我想将其转换为具有分层列的DataFrame,并添加另一列df['delta']=df['open']-df['close'],如下所示:

df2:
SPY           TSLA          AAPL
Open  Close   Open  Close   Open  Close 
date
2022-01-01 100   102     232   245     nan   nan    nan
2022-01-02 103   100     222   220     143   147     -4

编辑:在我得到df2中的形状后,我想计算第三列,称为delta,以得到以下内容:

df:
SPY                 TSLA                AAPL
Open  Close  delta  Open  Close  delta  Open  Close  delta
date
2022-01-01 100   102    -2     232   245    -13    nan   nan    nan
2022-01-02 103   100     3     222   220      2    143   147     -4

如何做到这一点?我试着旋转DataFrame,但没有成功。

您应该能够使用:

(df.assign(delta=lambda x: x['open'] - x['close'])
.stack()
.unstack(level=[1,2])
)

输出:

Symbol        SPY                TSLA                AAPL             
open  close delta   open  close delta   open  close delta
date                                                                  
2022-01-01  100.0  102.0  -2.0  232.0  245.0 -13.0    NaN    NaN   NaN
2022-01-02  103.0  100.0   3.0  222.0  220.0   2.0  143.0  147.0  -4.0

最新更新