pandas带有重复索引操作方法

有的时候,可能会遇到表格中出现重复的索引,在操作重复索引的时候可能要注意一些问题。

一、判断索引是否重复

a、Series索引重复判断

s = Series([1,2,3,4,5],index=["a","a","b","b","c"])

print(s.index.is_unique)

#False

Series.index.is_unique为False表示索引重复。

b、DataFrame索引重复判断

a = np.arange(9).reshape(3,3)

data = DataFrame(a,index=["a","b","c"],columns=["one","two","one"])

#判断行索引是否重复

print(data.index.is_unique)

#True

#判断列索引是否重复

print(data.columns.is_unique)

#False

二、索引取值

如果一个索引对应多个值,Series返回的是一个Series。如果一个索引对应一个值的时候,Series返回的是一个标量,DataFrame返回的是始终是一个DataFrame。

a、Series的索引取值

s = Series([1, 2, 3, 4, 5], index=["a", "a", "b", "b", "c"])

print(type(s["a"]))

#<class 'pandas.core.series.Series'>

print(s["a"])

'''

a 1

a 2

'''

#选取第一个a

print(s[:1])

#a 1

print(s[[0]])

#a 1

b、DataFrame的索引取值

a = np.arange(9).reshape(3,3)

data = DataFrame(a,index=["a","b","b"],columns=["one","two","one"])

#对行进行选取

print(type(data.ix["b"]))

#<class 'pandas.core.frame.DataFrame'>

print(data.ix["b"])#与data.xs("b")等价

'''

one two one

b 3 4 5

b 6 7 8

'''

#选取第二行

print(type(data.ix[1:2]))#与data[1:2]等价

#<class 'pandas.core.frame.DataFrame'>

print(data.ix[1:2])

#b 3 4 5

print(data.ix[[1]])

#b 3 4 5

#对列进行选取

print(data["one"])#等价于data.one 或 data.xs("one",axis=1)

'''

one one

a 0 2

b 3 5

b 6 8

'''

#选取第一列

print(data.ix[:,0])

'''

a 0

b 3

b 6

'''

print(data.ix[:,:1])

'''

one

a 0

b 3

b 6

'''

以上这篇pandas带有重复索引操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是 pandas带有重复索引操作方法 的全部内容, 来源链接: utcz.com/z/357550.html

回到顶部