有的时候,可能会遇到表格中出现重复的索引,在操作重复索引的时候可能要注意一些问题。
一、判断索引是否重复
a、Series索引重复判断
1
2
3
|
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索引重复判断
1
2
3
4
5
6
7
8
|
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的索引取值
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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的索引取值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
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带有重复索引操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/sinat_29957455/article/details/78994764