了解pandas.MultiIndex.has_duplicates属性

时间:2014-12-14 19:19:41

标签: python pandas indexing duplicates

给定一个Pandas MultiIndex实例my_index,我需要检测它的元组列表表示(即my_index.tolist())是否包含任何重复的元组。虽然可以使用len(pandas.unique(my_index)) < len(my_index)完成此操作,但我想知道MultiIndex.has_duplicates属性是否可用于此目的。尽管Pandas源代码中的相应单元测试似乎表明情况属实,但我不确定为什么该属性为True,以下示例中不包含重复元组。 (我在Linux上用Python 2.7.6使用Pandas 0.15.2。)我是否误解了该属性的用途?

import pandas as pd
t = [(u'x', u'out', u'z', 5, u'y', u'in', u'z', 169),
     (u'x', u'out', u'z', 7, u'y', u'in', u'z', 119),
     (u'x', u'out', u'z', 9, u'y', u'in', u'z', 135),
     (u'x', u'out', u'z', 13, u'y', u'in', u'z', 145),
     (u'x', u'out', u'z', 14, u'y', u'in', u'z', 158),
     (u'x', u'out', u'z', 16, u'y', u'in', u'z', 122),
     (u'x', u'out', u'z', 17, u'y', u'in', u'z', 160),
     (u'x', u'out', u'z', 18, u'y', u'in', u'z', 180),
     (u'x', u'out', u'z', 20, u'y', u'in', u'z', 143),
     (u'x', u'out', u'z', 21, u'y', u'in', u'z', 128),
     (u'x', u'out', u'z', 22, u'y', u'in', u'z', 129),
     (u'x', u'out', u'z', 25, u'y', u'in', u'z', 111),
     (u'x', u'out', u'z', 28, u'y', u'in', u'z', 114),
     (u'x', u'out', u'z', 29, u'y', u'in', u'z', 121),
     (u'x', u'out', u'z', 31, u'y', u'in', u'z', 126),
     (u'x', u'out', u'z', 32, u'y', u'in', u'z', 155),
     (u'x', u'out', u'z', 33, u'y', u'in', u'z', 123),
     (u'x', u'out', u'z', 12, u'y', u'in', u'z', 144)]
idx = pd.MultiIndex.from_tuples(t)
print idx.has_duplicates

1 个答案:

答案 0 :(得分:0)

开发人员指出,这是一个已经在Pandas 0.16.0中修复的错误。