Python Pandas Multiindex Slicing/Indexing 获取重复数据

Posted

技术标签:

【中文标题】Python Pandas Multiindex Slicing/Indexing 获取重复数据【英文标题】:Python Pandas Multiindex Slicing/Indexing to obtain duplicate data 【发布时间】:2018-07-22 23:07:07 【问题描述】:

我是 python 新手,我正在使用具有多个索引的 pandas 数据框。我想获取一个数据帧并将其与另一个数据帧切片/组合/索引。第一个看起来像这样:

    a
Out[123]: 
     col1  col2 col3 col4
     lion tiger bear ohmy
row1    1     5    1    2
row2    2     6    2    3
row3    3     7    3    4
row4    4     8    4    5

第二个是:

    b
Out[124]: 
    col group
0  col2     A
1  col3     B
2  col3     C
3  col4     D
4  col4     A

我想生成以下内容(然后我想按索引的第二级进行分组 - A、B、C、D):

    d
Out[125]: 
     col2 col3    col4   
        A    B  C    A  D
row1    5    1  1    2  2
row2    6    2  2    3  3
row3    7    3  3    4  4
row4    8    4  4    5  5

每次我尝试用第二个 (a[b['col']]) 索引第一个数据帧时,我都会收到以下错误: NotImplementedError: 非唯一索引上的 Index._join_level 未实现

【问题讨论】:

【参考方案1】:

你可以试试

s=df2.groupby('col').count()

s1=df.loc[:,s.index.tolist()]


Out=df2.merge(s1.T.reset_index(),left_on='col',right_on='level_0').drop(['level_0','level_1'],1).set_index(['col','group']).T

Out
Out[404]: 
col   col2 col3    col4   
group    A    B  C    D  A
row1     5    1  1    2  2
row2     6    2  2    3  3
row3     7    3  3    4  4
row4     8    4  4    5  5

【讨论】:

@Christine yw~ 快乐编码:-)

以上是关于Python Pandas Multiindex Slicing/Indexing 获取重复数据的主要内容,如果未能解决你的问题,请参考以下文章

构建 MultiIndex pandas DataFrame 嵌套 Python 字典

Python Pandas Multiindex Slicing/Indexing 获取重复数据

如何在Python Pandas中将MultiIndex Dataframes与权重合并?

Python/Pandas - 查询多索引列 [重复]

pandas:将两个 DataFrame 与已排序的 MultiIndex 连接起来,使得结果具有已排序的 MultiIndex

Pandas:从 DataFrame 分配 MultiIndex 列