附加两个多索引熊猫数据框
Posted
技术标签:
【中文标题】附加两个多索引熊猫数据框【英文标题】:Append two multiindexed pandas dataframes 【发布时间】:2015-10-22 05:10:06 【问题描述】:您能帮忙吗?试图将 df_future 附加到 df_current。 COMPANY 和 DATE 是索引。
df_current
VALUE
COMPANY DATE
7/27/2015 1
A 7/28/2015 2
7/29/2015 3
7/30/2015 4
7/27/2015 11
B 7/28/2015 12
7/29/2015 13
7/30/2015 14
df_future
VALUE
COMPANY DATE
A 8/1/2015 5
8/2/2015 6
B 8/1/2015 15
8/2/2015 16
根据这些dfs,想看看..
df_current_and_future
VALUE
COMPANY DATE
7/27/2015 1
7/28/2015 2
A 7/29/2015 3
7/30/2015 4
8/1/2015 5
8/2/2015 6
7/27/2015 11
7/28/2015 12
B 7/29/2015 13
7/30/2015 14
8/1/2015 15
8/2/2015 16
【问题讨论】:
【参考方案1】:使用concat
连接两个DataFrame,使用sort_index
重新排序第一个索引级别:
In [167]: pd.concat([df_current, df_future]).sort_index()
Out[167]:
VALUE
COMPANY DATE
A 7/27/2015 1
7/27/2015 11
7/28/2015 2
7/29/2015 3
7/30/2015 4
8/1/2015 5
8/2/2015 6
B 7/28/2015 12
7/29/2015 13
7/30/2015 14
8/1/2015 15
8/2/2015 16
注意:我的原始答案使用了 sortlevel
,现在已弃用。作为firelynx shows,请改用sort_index
。
【讨论】:
unutbu 先生,你太棒了!非常感谢!【参考方案2】:在 pandas 中追加称为 concat。并用the pd.concat
function.完成
concat
函数不管你有没有多重索引都可以工作
df = pd.concat([df_current, future])
VALUE
COMPANY DATE
A 7/27/2015 1
7/28/2015 2
7/29/2015 3
7/30/2015 4
7/27/2015 11
B 7/28/2015 12
7/29/2015 13
7/30/2015 14
A 8/1/2015 5
8/2/2015 6
B 8/1/2015 15
8/2/2015 16
如果排序有问题,只需使用:
df.sort_index()
VALUE
COMPANY DATE
A 7/27/2015 1
7/27/2015 11
7/28/2015 2
7/29/2015 3
7/30/2015 4
8/1/2015 5
8/2/2015 6
B 7/28/2015 12
7/29/2015 13
7/30/2015 14
8/1/2015 15
8/2/2015 16
【讨论】:
不知道 df.sort_index() 部分。谢谢!以上是关于附加两个多索引熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章