pandas中Series的使用方式
作者:菜鸟长安
pandas的应用
pandas的核心数据类型是Series(数据系列)、DataFrame(数据表/数据框),反别用于处理一维和二维的数据。
还有一个Index类型的子类型,它为Series和Dataframe提供了索引功能
创建Series对象
Series对象用来表示一维数据结构,跟数组非常类似,但是多了一些功能。
Series的内部结构包含了两个数组,其中一个用来保存数据,另一个用来保存数据的索引。
还可以使用字典的方式来创建
索引
Series对象也可以进行索引和切片的操作,不同的是Series对象因为内部维护了一个保护索引的数组。
除了可以使用整数索引通过位置检索数据外,还可以通过自己设置的检索标签获取相对应的数据。
第一种,通过位置索引,并修改数据
第二种,使用自定义标签
花式索引
花式索引和普通索引的区别最外一层为方括号[ ]
布尔索引
用来判断列表中数值的范围
Series对象的常用属性
# 求和 print(ser2.sum()) # 求均值 print(ser2.mean()) # 求最大 print(ser2.max()) # 求最小 print(ser2.min()) # 计数 print(ser2.count()) # 求标准差 print(ser2.std()) # 求方差 print(ser2.var()) # 求中位数 print(ser2.median())
describe()方法
describe()方法:可以获得上述所有的描述性统计信息,如方差,标准差,中位数等等
对于某一特定的值,也可以通过索引的方式获得
value_count()方法
如果想要统计每个值重复的次数,可以使用value_counts()方法,这个方法会返回一个Series对象,它的索引就是原来的Series对象中的值,而每个值出现的次数就是返回的Series对象中的数据,在默认情况下会按照出现次数做降序排列。
ser3 = pd.Series(data=['apple', 'banana', 'apple', 'pitaya', 'apple', 'pitaya', 'durian']) ser3.value_counts()
unique() 方法
如果Series对象有重复的值,我们可以使用unique()方法获得去重之后的Series对象;
可以使用nunique()方法统计不重复值的数量 数据处理的方法。
isnull()和notnull()
Series对象的isnull()和notnull()方法可以用于空值的判断
dropna()和fillna()分别用来删除空值和填充空值
dropna()和fillna()方法都有一个名为inplace的参数,它的默认值是False,表示删除空值或填充空值不会修改原来的Series对象,而是返回一个新的Series对象来表示删除或填充空值后的数据系列,如果将inplace参数的值修改为True,那么删除或填充空值会就地操作,直接修改原来的Series对象,那么方法的返回值是None。
后面我们会接触到的很多方法,包括DataFrame对象的很多方法都会有这个参数,它们的意义跟这里是一样的。
mask()和where()
- mask():可以将满足条件的全部替换
- where():将不满足条件的替换
duplicated()和drop_duplicates()
- duplicated()方法可以帮助找出重复的数据,根据布尔值显示是否重复
- drop_duplicates()可以帮助删除重复的数据
apply()和map()
map()可以不通过索引,直接通过内容来进行修改数据
apply()可以将原始值通过一定的计算,得到想要的数组
排序和取头部值的方法
Series对象的sort_index()和sort_values()方法可以用于对索引和数据的排序,排序方法有一个名为ascending的布尔类型参数,该参数用于控制排序的结果是升序还是降序;
而名为kind的参数则用来控制排序使用的算法,默认使用了quicksort,也可以选择mergesort或heapsort;
如果存在空值,那么可以用na_position参数空值放在最前还是最后,默认是last
- sort_values() 按值从小到大排序
- sort_values(ascending=False) 按值从大到小
- 取头部
如果要从Series对象中找出元素中最大或最小的“Top-N”,实际上是不需要对所有的值进行排序的,可以使用nlargest()和nsmallest()方法来完成
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。