python - Pandas 对 multindex 进行什么样的合并、连接或连接
问题描述
我有带有多重索引的数据框:
A | B
1 0 a b
2 0 c d
1 e f
3 0 g h
1 i j
2 k l
我还有一个匹配索引级别为 0 的系列
1 m
2 n
3 o
现在,我想将此系列的值添加到数据框中
A | B | C
1 0 a b m
2 0 c d n
1 e f n
3 0 g h o
1 i j o
2 k l o
我应该使用什么样的连接、合并、连接?我不介意事后是否必须填写,但我想保持数据框的多索引完好无损。
非常感谢
解决方案
您需要命名索引级别,以便在合并中引用它们。还将您的转换Series
为DataFrame
:
df.index.names=['idx1', 'idx2']
df.merge(s.to_frame('C'), left_on='idx1', right_index=True)
A B C
idx1 idx2
1 0 a b m
2 0 c d n
1 e f n
3 0 g h o
1 i j o
2 k l o
也可以删除索引级别之一,然后加入Series
并添加索引级别:
df.reset_index(1).join(s.rename('C')).set_index('level_1', append=True)
A B C
level_1
1 0 a b m
2 0 c d n
1 e f n
3 0 g h o
1 i j o
2 k l o
推荐阅读
- java - 循环问题?程序正常运行,但测试一直失败。Java 使用 TMCbeans
- java - Android AlarmManager 无法正确取消警报
- mysql - MySQL - 在重复键上用旧列值更新另一列
- vhdl - 如何将信号分配给多路复用器的端口?
- python - 更新:命令行错误:ValueError:文件路径或缓冲区对象类型无效:
- excel - 我可以在excel中仅绘制/过滤每天的峰值吗
- html - 按下按钮时在 TextArea 框中输出文本
- xml - Extract delimited data
- jasmine - 如何使用 jasmine-protractor 自动化 amcharts?
- xcode - 拖动 NSSegmentedControl 时文本混乱