首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫合并多索引列但单索引索引

熊猫合并多索引列但单索引索引
EN

Stack Overflow用户
提问于 2021-06-16 17:48:39
回答 2查看 450关注 0票数 0

我正在使用Python3.8.6与熊猫版本1.2.4

我想用这个dataframe在前面的行上做一个自联接:

代码语言:javascript
复制
            bar   
            one  
index                                                                                
0      0.238307 
1      0.610819 

所以我在做熊猫合并之前准备了数据

“左”合并数据如下所示:

代码语言:javascript
复制
        bar   
        one  
0  0.238307  
1  0.610819 

“右”合并数据如下所示:

代码语言:javascript
复制
        bar   index1
        one         
0  0.238307      1
1  0.610819      2

现在我尝试这个合并:

代码语言:javascript
复制
pd.merge(left, right, left_index=True, right_on=('index1',''), suffixes=('_n','_p'))

它抛出一个ValueError: len(right_on)必须等于“左”索引中的级别数。

对我来说,这毫无意义。重要的是('index1,'')的值与left.index相当

我遗漏了什么?

我还尝试了以下几点:

代码语言:javascript
复制
  index       bar  
              one  
0     0  0.972453 
1     1  0.278209 

正确的

代码语言:javascript
复制
        bar  index1
        one         
0  0.972453      1
1  0.278209      2

合并表达式

代码语言:javascript
复制
pd.merge(left,right,left_on=('index',''),right_on=('index1',''),suffixes=('_n','_p'))

错误

代码语言:javascript
复制
 raise KeyError(key)
KeyError: ''

注意:

代码语言:javascript
复制
left.loc[:,('index','')]
0    0
1    1
2    2
right.loc[:,('index1','')]
0    1
1    2
2    3

所以再一次,一些我不明白的问题

谢谢马丁

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-16 19:29:35

这是不是你所期望的:

代码语言:javascript
复制
>>> pd.merge(dfL, dfR, left_index=True, right_on='index1', suffixes=('_n','_p'))

      bar_n     bar_p index1
        one       one
0  0.610819  0.238307      1

如果是merge 文档:如果是MultiIndex,则其他DataFrame中的键数(索引或列数)必须匹配级别数。

票数 0
EN

Stack Overflow用户

发布于 2021-06-17 00:54:38

我发现的答案是:

代码语言:javascript
复制
left=left.set_index(('index',''))
right=right.set_index(('index1',''))
dfJoined=pd.merge(left,right,left_index=True,right_index=True,suffixes=('_n','_p'))

产生

代码语言:javascript
复制
      bar_n     bar_p     
        one       one
1  1.719833 -0.540152 #different random numbers from question above
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68007737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档