我如何最好地标准化pd MultiIndex df?

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

我有一个PD df,它是MultiIndex。我想在每个符号上运行一个函数,但在完整d上运行规范化函数。第一个符号很好,但是后面的符号被第一个符号操纵。如何使用矢量化进行标准化,而不是遍历符号并对其进行过滤?

这是我在没有MultiIndex df且只有一个符号的情况下尝试的方法。

>>>df.loc['Adj_Close_Norm'] = df/df.iloc[0]

>>>print(df)
                    Adj_Close_Price
Symbol Date
JPM    2010-01-04            40.87
       2010-01-05            41.67
       2010-01-06            41.89
       2010-01-07            42.72
       2010-01-08            42.62
...                            ...
SPY    2011-12-23           125.19
       2011-12-27           125.29
       2011-12-28           123.64
       2011-12-29           124.92
       2011-12-30           124.31

[1008 rows x 1 columns]
>>>df.loc['Adj_Close_Norm'] = df/df.iloc[0] 

>>>print(df)
                   Adj_Close_Price  Adj_Close_Norm
Symbol Date
JPM    2010-01-04            40.87        1.000000
       2010-01-05            41.67        1.019574
       2010-01-06            41.89        1.024957
       2010-01-07            42.72        1.045265
       2010-01-08            42.62        1.042819
...                            ...             ...
SPY    2011-12-23           125.19        3.063127
       2011-12-27           125.29        3.065574
       2011-12-28           123.64        3.025202
       2011-12-29           124.92        3.056521
       2011-12-30           124.31        3.041595

[1008 rows x 2 columns]

python pandas dataframe multi-index
1个回答
1
投票

让我们来做groupby + transform

df.loc['Adj_Close_Norm']=df['Adj_Close_Price']/df.groupby(level=0)['Adj_Close_Price'].transform('first')
© www.soinside.com 2019 - 2024. All rights reserved.