我有以下两种数据帧结构:
roc_100
max min
industry Banks Health Banks Health
date
2015-03-15 3456 456 345 567
2015-03-16 6576 565 435 677
2015-03-17 5478 657 245 123
和
roc_100
max min
date
2015-03-15 546 7856
2015-03-16 677 456
2015-03-17 3546 346
可以看出,两个数据框架之间的区别在于底层数据框架没有“行业”。但是数据帧结构的其余部分是相同的,即:它也有左边的日期,并按roc_100分组,在其下面是max和min。
我需要做的是将底部数据框中的列添加到顶部数据框,并为添加的列添加行业名称,例如:' benchmark'。结果数据框应如下所示:
roc_100
max min
industry Banks Health Benchmark Banks Health Benchmark
date
2015-03-15 3456 456 546 345 567 7856
2015-03-16 6576 565 677 435 677 456
2015-03-17 5478 657 3546 245 123 346
我尝试过使用追加和加入,但到目前为止这两个选项都没有效果,因为一个数据框架有一个'行业'而另一个没有。
修改
我已成功使用以下方法合并它们:
industry_df = industry_df.merge(benchmark_df, how='inner', left_index=True, right_index=True)
现在唯一的问题是,新添加的专栏仍然没有“行业”。
这意味着,如果我只想要一个行业,例如:健康,那么我可以这样做:
print(industry_df['roc_100', 'max', 'Health'])
这有效,但如果我想打印所有行业,包括新添加的栏目,我就无法做到。如果我尝试:
print(industry_df['roc_100', 'max'])
这只打印出新添加的列,因为它们是唯一没有“行业”的列。有没有办法给这些新合并的列命名('行业')?
答案 0 :(得分:0)
您可以使用stack()和unstack()将两个数据帧带到相同的索引结构,行业作为列。然后分配新的基准列。最后一步 - 通过相同的stack()和unstack()恢复初始索引/列结构。