我是靠谱客的博主 瘦瘦铅笔,最近开发中收集的这篇文章主要介绍Pandas的Series的Slice切片(4)4. Pandas的Series的Slice,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
4. Pandas的Series的Slice
Slice切片,pandas的Series的切片,以位置信息去使用切片,和python里的切片的意义是一样的即含起点不含终点half-open。但Series还支持一种label的方式定位每个元素,常用字符串做index,所以在label上使用切片和python不一样的地方是即含起点又含终点。如果用整形位置信息作为label,会产生歧义,建议不这样用。总之,整形做位置信息切片,字符串做label切片。有关切片的使用,之前的章节已经说过了,这里不重复了。
import pandas as pd
import numpy as np
val = [2, 4, 5, 6]
ii = range(10, 14)
s0 = pd.Series(val)
s1 = pd.Series(val, index = ii)
idx =
"hello the cruel world".split()
t = pd.Series(val, index = idx)
print "s0", "*" * 11
print s0[0:2]
print "s1", "*" * 11
print s1[ii[0:2]],"n"
print s1[10:12],"n"
print s1[0:2]
print s1[20:30]
print s1[13]
print "t", "*" * 12
print t[0:2]
print t["hello":"cruel"]
print "-" * 14
print s0.iloc[0:2],'n'
print s1.loc[10:12],'n'
print s1.iloc[10:12],'n'
print t.loc["hello":"cruel"],'n'
print t.ix[0:2]
对于s1的打印语句
print s1[ii[0:2]],"n"
print s1[10:12],"n"
print s1[0:2]
print s1[20:30]
四条语句,那些是切片?s1[0:2]
和s1[20:30]
很明显是切片。s1[10:12]
为何没有结果?原因s1里10~12位置上没有数据,故切出来的是空,同s1[20:30]
一样的道理。s1[ii[0:2]]
则是多index。可以从下面的例子理解s1的各种“切片”的结果为何如此?
import pandas as pd
idx = range(10, 30)
val = range(1, 21)
s = pd.Series(val, index = idx)
print s
print s[0:2],"n"
print s[10:12]
程序的执行结果:
10
1
11
2
...
19
10
20
11
21
12
22
13
...
29
20
dtype: int64
10
1
11
2
dtype: int64
20
11
21
12
dtype: int64
在Pandas里使用切片最标准的定义Series和使用是t变量这种创建Series的方式和使用index、slice的方式。即用字符串做label(显式),用整形做位置信息(隐式),但显式切片和隐式切片的结果不同,显示含终点,隐式不含终点。
print t[0:2]
print t["hello":"cruel"]
语句执行结果不同,尽管label标签cruel的位置为2。
最后
以上就是瘦瘦铅笔为你收集整理的Pandas的Series的Slice切片(4)4. Pandas的Series的Slice的全部内容,希望文章能够帮你解决Pandas的Series的Slice切片(4)4. Pandas的Series的Slice所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复