Pandas的基本功能(七)
2018-12-05 本文已影响7人
5f2a6061653d
带有重复值的索引
在之前的学习中,无论是数组还是字典,都要求有唯一的索引值,虽然Pandas中的许多函数都要求索引值唯一,但这不是强制性的要求,因此,用户在创建Series对象和DataFrame对象时,都有可能设置重复的索引值,具体示例如下所示:
In [43]: from pandas import Series,DataFrame
In [44]: se = Series(range(4),index = ['a','a','b','b'])
上述代码是创建存在重复索引值的Series对象,运行结果如下所示:
In [45]: se
Out[45]:
a 0
a 1
b 2
b 3
dtype: int64
从上述运行结果可以看出,se对象中含有两个索引为“a”和两个索引为“b”的值,因此在访问索引为“a”或“b”的值时,返回的结果往往与预想不同,当某个索引对应多个值,则会返回一个Series对象,而非一个标量值,具体示例如下所示:
In [46]: se['a']
Out[46]:
a 0
a 1
dtype: int64
In [47]: se['b']
Out[47]:
b 2
b 3
dtype: int64
当不知Series对象中是否含有重复索引值时,可通过索引的is_unique属性来检测,具体示例如下所示:
In [48]: se.index.is_unique
Out[48]: False
DataFrame对象同样也会遇到上述问题,因此,在创建Series或DataFrame对象时,没有特殊要求就应将索引值设置成唯一的。