Series idx & name; Series index的使用,切片,读取数据,增加,布尔选择

http://liao.cpython.org/pandas03/
http://liao.cpython.org/pandas06/

总结一下:创建Series的实例对象,有两种方式:一种是不指定Series构造函数的index,会自动有一个位置信息的index从0~len() -1自动为这个Series对象分配。另一种方式是常用字符列表作为Series对象的各个数据的标签label。

在创建Series对象时,建议不用int64作为label,用字符串作为Series的label在后续pandas的使用比较常见且有必要。int64可以作为位置信息,但一般从0开始,非0开始的位置信息建议不要用。

idx = 'a b c d e'.split()
v = [11,12,3,4,16]
t = pd.Series(v,index = idx,name = 'im columns')

t.name
Out[76]: 'im columns'

t.index
Out[77]: Index(['a', 'b', 'c', 'd', 'e'], dtype='object')

index的使用

在pandas里对Series的各个位置、标签上的数据的访问,可以通过loc、iloc、at、iat或ix来访问。带i的一般是通过位置相关得到数据,不带i的通过标签label来获得对应数据,ix既可以接收位置也可接收label。这里的loc、iloc等不是函数,可以理解为index的属性。

t.iloc[0]
Out[79]: 11

t.loc['a']
Out[80]: 11

多个index的使用 [[ ]]

t.loc[['a','b']]
t.loc[['a','b']]
Out[82]: 
a    11
b    12
Name: im columns, dtype: int64

Series 的切片

Slice切片,pandas的Series的切片,以位置信息去使用切片,和python里的切片的意义是一样的即含起点不含终点half-open。但Series还支持一种label的方式定位每个元素,常用字符串做index,所以在label上使用切片和python不一样的地方是即含起点又含终点。如果用整形位置信息作为label,会产生歧义,建议不这样用。总之,整形做位置信息切片,字符串做label切片。有关切片的使用,之前的章节已经说过了,这里不重复了。

在Pandas里使用切片最标准的定义Series和使用是t变量这种创建Series的方式和使用index、slice的方式。即用字符串做label(显式),用整形做位置信息(隐式),但显式切片和隐式切片的结果不同,显示含终点,隐式不含终点。

t['b':'d']
Out[97]: 
b    12
c     3
d     4
Name: im columns, dtype: int64

Series 读取数据,读取series对象的label和value

  1. 通过label或者位置的方式访问、修改Series数据。
    1.1 当然也可用iloc、loc、at、iat等来处理。
t['a'] = 111

t
Out[106]: 
a    111
b     12
c      3
d      4
e     16
Name: im columns, dtype: int64
  1. iteritems函数可以获得标签和值。
for x in t.iteritems():
    print (x)
('a', 111)
('b', 12)
('c', 3)
('d', 4)
('e', 16)

Series增加数据 append

t = t.append(pd.Series({'z':22}))

t['x'] = 34

删除数据: 删除在Series很少用。常用布尔选择或mask来选择数据组成新的Series。(布尔选择:)

t1 = t>20
t1
Out[123]: 
a     True
b    False
c    False
d    False
e    False
z     True
z     True
p     True
x     True
dtype: bool
发布了4 篇原创文章 · 获赞 0 · 访问量 494
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览