Python 规范化面板(将所有值除以第一个切片)
我很难将熊猫“数据”面板正常化,比如: [23]中的Python 规范化面板(将所有值除以第一个切片),python,pandas,panel,divide,normalize,Python,Pandas,Panel,Divide,Normalize,我很难将熊猫“数据”面板正常化,比如: [23]中的:数据 出[23]: 尺寸:6(项目)x 252(长轴)x 4(短轴) 项目轴:打开到调整关闭 长轴:2011-01-03 00:00:00至2011-12-30 00:00:00 短轴:从AAPL到XOM 基本上,我想将所有值除以另一个面板,该面板只包含原始面板的第一个“切片”(所有“项目”和“短轴”的第一个值): [25]中的:数据[:,:1,:] 出[25]: 尺寸:6(项目)x 1(长轴)x 4(短轴) 项目轴:打开到调整关闭 长轴:2
:数据
出[23]:
尺寸:6(项目)x 252(长轴)x 4(短轴)
项目轴:打开到调整关闭
长轴:2011-01-03 00:00:00至2011-12-30 00:00:00
短轴:从AAPL到XOM
基本上,我想将所有值除以另一个面板,该面板只包含原始面板的第一个“切片”(所有“项目”和“短轴”的第一个值):
[25]中的:数据[:,:1,:]
出[25]:
尺寸:6(项目)x 1(长轴)x 4(短轴)
项目轴:打开到调整关闭
长轴:2011-01-03 00:00:00至2011-01-03 00:00:00
短轴:从AAPL到XOM
结果应该是一个与原始面板大小相同的面板,所有值除以相应的第一个值(第一个日期)
谢谢和问候
PD:我已经尝试过了。应用和。按照其他帖子进行划分,但找不到方法使其与此配置一起工作(除以面板的一部分);使用简单的标量除法,两种方法都可以很好地工作。这是我关于StackOverflow的第一个答案,希望这会有所帮助。我遇到了同样的问题,但我使用的不是pandas panel对象,而是带有多索引的Dataframe对象。您应该能够通过以下方式获得所需的效果:将您的数据框与较小的数据框合并,其中只包含每个选定股票的第一个日期 这里有一些伪代码 假设您的完整数据帧是'df',具有由两列组成的多索引['ticker','period']。在该数据帧中有一列['price'] 这是你可以做你想做的事的方法
df_slice = df[df.reset_index()['period'] == '2017-01-01']
df_merged = pd.merge(df.reset_index(), df_slice, how='inner', on='ticker')
df_merged['price_normalized'] = df_merged.price_x/df_merged.price_y
我希望这有帮助 这是我关于StackOverflow的第一个答案,希望这会有所帮助。我遇到了同样的问题,但我使用的不是pandas panel对象,而是带有多索引的Dataframe对象。您应该能够通过以下方式获得所需的效果:将您的数据框与较小的数据框合并,其中只包含每个选定股票的第一个日期 这里有一些伪代码 假设您的完整数据帧是'df',具有由两列组成的多索引['ticker','period']。在该数据帧中有一列['price'] 这是你可以做你想做的事的方法
df_slice = df[df.reset_index()['period'] == '2017-01-01']
df_merged = pd.merge(df.reset_index(), df_slice, how='inner', on='ticker')
df_merged['price_normalized'] = df_merged.price_x/df_merged.price_y
我希望这有帮助