文章目录

  • pandas的应用
  • 创建Series对象
  • 索引
  • 花式索引
  • 布尔索引
  • Series对象的常用属性
  • describe()方法:
  • value_count()方法
  • unique() 方法
  • 数据处理的方法。isnull()和notnull()
  • dropna()和fillna()分别用来删除空值和填充空值
  • mask()和where()
  • duplicated()和drop_duplicates()
  • apply()和map()
  • 排序和取头部值的方法


pandas的应用

pandas的核心数据类型是Series(数据系列)、DataFrame(数据表/数据框),反别用于处理一维和二维的数据。
还有一个Index类型的子类型,它为Series和Dataframe提供了索引功能

创建Series对象

Series对象用来表示一维数据结构,跟数组非常类似,但是多了一些功能。Series的内部结构包含了两个数组,其中一个用来保存数据,另一个用来保存数据的索引。

series将索引变为一列 series 索引_series将索引变为一列


还可以使用字典的方式来创建

series将索引变为一列 series 索引_数据_02

索引

Series对象也可以进行索引和切片的操作,不同的是Series对象因为内部维护了一个保护索引的数组。除了可以使用整数索引通过位置检索数据外,还可以通过自己设置的检索标签获取相对应的数据。

第一种,通过位置索引,并修改数据

series将索引变为一列 series 索引_pandas_03


第二种,使用自定义标签

series将索引变为一列 series 索引_数据_04


series将索引变为一列 series 索引_数据分析_05

花式索引

花式索引和普通索引的区别最外一层为方括号[ ]

series将索引变为一列 series 索引_数据分析_06

布尔索引

用来判断列表中数值的范围

series将索引变为一列 series 索引_series将索引变为一列_07

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()方法:可以获得上述所有的描述性统计信息,如方差,标准差,中位数等等

series将索引变为一列 series 索引_pandas_08


对于某一特定的值,也可以通过索引的方式获得

series将索引变为一列 series 索引_数据分析_09

value_count()方法

如果想要统计每个值重复的次数,可以使用value_counts()方法,这个方法会返回一个Series对象,它的索引就是原来的Series对象中的值,而每个值出现的次数就是返回的Series对象中的数据,在默认情况下会按照出现次数做降序排列。

ser3 = pd.Series(data=['apple', 'banana', 'apple', 'pitaya', 'apple', 'pitaya', 'durian'])
ser3.value_counts()

series将索引变为一列 series 索引_数据_10

unique() 方法

如果Series对象有重复的值,我们可以使用unique()方法获得去重之后的Series对象;可以使用nunique()方法统计不重复值的数量

数据处理的方法。isnull()和notnull()

Series对象的isnull()和notnull()方法可以用于空值的判断

series将索引变为一列 series 索引_pandas_11

dropna()和fillna()分别用来删除空值和填充空值

series将索引变为一列 series 索引_数据分析_12

dropna()和fillna()方法都有一个名为inplace的参数,它的默认值是False,表示删除空值或填充空值不会修改原来的Series对象,而是返回一个新的Series对象来表示删除或填充空值后的数据系列,如果将inplace参数的值修改为True,那么删除或填充空值会就地操作,直接修改原来的Series对象,那么方法的返回值是None。后面我们会接触到的很多方法,包括DataFrame对象的很多方法都会有这个参数,它们的意义跟这里是一样的。

series将索引变为一列 series 索引_python_13

mask()和where()

mask():可以将满足条件的全部替换
where():将不满足条件的替换

series将索引变为一列 series 索引_series将索引变为一列_14


series将索引变为一列 series 索引_数据分析_15

duplicated()和drop_duplicates()

duplicated()方法可以帮助找出重复的数据,根据布尔值显示是否重复
drop_duplicates()可以帮助删除重复的数据

series将索引变为一列 series 索引_pandas_16

apply()和map()

map()可以不通过索引,直接通过内容来进行修改数据

series将索引变为一列 series 索引_数据分析_17


series将索引变为一列 series 索引_pandas_18


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()方法来完成

series将索引变为一列 series 索引_pandas_19


series将索引变为一列 series 索引_数据分析_20