本文将讲解Pandas数据结构中的Series。
Series类似于字典,但不是字典,因为他的索引可以是重复的。
一、Series的创建
- 使用pd.Series()
- 从DataFrame中取出一行或者一列
1.1、 使用pd.Series()
第二种方法主要在DataFrame的讲解中介绍,这里主要讲解使用前者pd.Series(),里面的参数可以是普通的列表,也可以是字典、其他的ndarray或者标量值。
使用标量值
1.2、从DataFrame中取出一行或者一列
使用DataFrame中的一列或者一行进行创建时,建议使用一个copy()函数,不然会影响到DataFrame中的原数据。
s = df["one"].copy()
二、Series的属性
最主要用的就是index和values两个属性。
2.1、index
2.2、values
index和values取出来之后,都可以用于勾践其他的Series或者DataFrame。
三、取出数据
取元素可以分为根据索引值取,和根据值取。
3.1、根据索引取
即使是自己另外设置了索引,隐式索引还是存在的,我们可以使用着两种索引来取值。
隐式索引(implicit index)所以使用iloc
- 使用loc[ ]和iloc[ ]来取值操作,前者只操作显示索引,后者只操作隐式索引。
- 但是loc和iloc不是函数,所以不使用小括号()而是中括号。
- loc和iloc都是闭区间,而不是左闭右开
上面举的例子,都是去的连续索引的,也可以是不连续的,需要使用列表把索引包括起来。
利用索引取值,不仅可以使用loc和iloc还可以使用get()函数来取值
3.2、根据值取
根据值取元素,实际上就是生成一个bool类型的Series,在用其进行索引取值。
四、增加元素
一般就是一条一条地添加元素,添加方法。
如果有大量的记录需要添加,可以先转换成ndarray再转化成list,再使用extend()方法
五、删除元素
s.drop()
六、修改元素值
修改元素就相当于先取出元素,再赋值即可。同样也可以根据索引或者元素值
七、Series之间的运算
对应的索引值之间进行运算,如果a有这个索引,但是b没有,则任何值与NaN之间的运算结果都是NaN
八、总结
- 只有元素的删除不会直接修改原Series,会返回一个新的Series
- 使用DataFrame生成Series时,一定别忘了加一个copy(),避免修改到DataFrame