未实现非唯一索引的Index._join_level

时间:2017-10-02 06:12:16

标签: python pandas dataframe hierarchical-data

这是我的数据

我的数据框名称为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多次,但它不再适用了

1 个答案:

答案 0 :(得分:1)

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

所以需要:

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()