python - 连接一个 3 级 MultiIndex
问题描述
我一直在尝试将两个 MultiIndex 连接在一起,但由于某种原因它还没有成功......
import numpy as np
import pandas as pd
df = pd.DataFrame([[1,1,0,0,4],
[1,1,1,0,8],
[1,1,2,0,6],
[2,1,0,0,4],
[2,1,1,0,3]], columns=['a', 'b', 'c', 'd', 'e']
df2 = pd.DataFrame([[1,1,0,2,4],
[2,1,1,2,3]], columns=['a', 'b', 'c', 'd', 'e']
df = df.set_index(['a', 'b', 'c'])
df2 = df2.set_index(['a', 'b', 'c'])
df = pd.concat([df,df2], axis=1, join='inner')
这就是我尝试这样做的方式,我真的认为这应该可行。任何人都可以帮助弄清楚如何将这两者结合起来,以便只获得 a、b 和 c 列匹配的行。
我正在寻找的结果:
d_x e_x d_y e_y
a b c
1 1 0 0 4 2 4
2 1 1 0 3 2 3
解决方案
使用merge
代替concatenate
:
df.merge(df2, left_index=True, right_index=True)
推荐阅读
- python - 将抓取的二进制文件写入 blob,而无需先将其写入磁盘
- html - 添加 disply:swipe google font apis ip board
- c# - 通过 LINQ 语句和计算将记录添加到结果集中
- r - 如何从 R 中的另一个数据框中添加新列,对应于第一个数据框中的特定样本
- flutter - Flutter:找到了这个候选人,但参数不匹配
- select - 插入选择 - 存储过程影响 0 行
- javascript - 获取 HTML 表格标签之间的所有文本(单行和多行)
并生成json 我有下面的 HTML 表,我想获取标签之间的数据,这些数据有时是单行的,有时是多行的。
<table> <tbody> <tr> <th>Role</th> <th>De
- git - Git repo 可以充当另一个 Git repo 的子/继承吗?
- python - 如何在不使用 max() 的情况下使函数最有效?
- ruby-on-rails - 如何解冻哈希?