从具有不同结构的数据帧添加列

2024-04-18 23:11:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下两种数据帧结构:

            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\u100分组,下面是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

我尝试过使用append和join,但到目前为止这两个选项都不起作用,因为一个数据帧有一个'industry',而另一个没有

编辑:

我已成功地使用以下方法将它们正确合并:

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'])

这只打印出新添加的列,因为它们是唯一没有“行业”的列。有没有办法给这些新合并的列起个名字(“industry”)


Tags: 数据truedfdateindexmin结构max
1条回答
网友
1楼 · 发布于 2024-04-18 23:11:20

您可以使用stack()和unstack()将两个数据帧带到以行业为列的相同索引结构中。然后指定新的基准列。最后一步-通过相同的stack()和unstack()还原初始索引/列结构

相关问题 更多 >