我是靠谱客的博主 瘦瘦铅笔,最近开发中收集的这篇文章主要介绍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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部