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与权重合并?
pandas:将两个 DataFrame 与已排序的 MultiIndex 连接起来,使得结果具有已排序的 MultiIndex