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