Index._join_level 非唯一索引未实现

Index._join_level on non-unique index is not implemented

这是我的数据

我的数据框名称是 tab

        user_id     len
        barcode
0        1          490
1        2          71
2        3          1
3        5          1

这是我的代码

tab = tab[tab[('len', 'barcode')]]

tab.columns

MultiIndex(levels=[['len', 'user_id'], ['barcode', '']],
           labels=[[1, 0], [1, 0]])

这段代码在我的日常笔记本上运行了 10 次以上,但它不再运行了

我认为你的二级名称是空字符串有问题。

所以需要:

a = tab[('len', '')]
print (a)
0    490
1     71
2      1
3      1
Name: (len, ), dtype: int64

如果要替换列名称中的所有空字符串:

tab = tab.rename(columns={'':'b'})
a = tab[('len', 'b')]
print (a)
0    490
1     71
2      1
3      1
Name: (len, b), dtype: int64

但最好删除 [] 以删除列中的 MultiIndex:

tab = pd.pivot_table(barcode,index="user_id",values="barcode",‌​aggfunc='size')
tab = tab.reset_index()