【数据处理】Pandas库:数组运算

语言: CN / TW / HK

theme: cyanosis highlight: a11y-dark


持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

注意:本案例使用 Jupyter Notebook 进行案例演示

1. Pandas数组运算

1.1 统计运算

在数据处理中,可以使用以下函数查看数据的基本情况,获取统计学基本数据信息,比如平均值,中位数等,该方法只会针对数据类型的数进行统计计算,对于字符串形式的列无效。

data.describe() - 返回值: - count:样本个数 - mean:平均值 - std:标准差 - min:最小值 - max:最大值 - 25%:25%分位数 - 50%:中位数 — 75%:75%分位数

导入相关库并读取数据:读取数据以后,使用上述函数进行统计计算 import pandas as pd people = pd.read_csv("data/data140190/人口.csv") people.describe()

运行结果如下图所示:将统计基本信息进行了计算。

image.png

.max()函数 - 可以求数组最大值 - 默认按照每列进行计算:axis=0

获取数据的最大值:

people.max() # 默认按列求最大值 axis=0 运行结果如下图所示:

image.png

.idxmax()函数: - 可以获取最大值所在的位置 - 返回所在位置的索引

```python

获取最大值所在位置

people.idxmax() ``` 运行结果如下图所示:

image.png

1.2 累计统计函数

.cumsum()函数 - 作用主要就是计算轴向的累加和。 - axis=0:按行累加 - axis=1:按列累加 - 可以通俗理解成:返回数组的第n个数就是原数组前n个数的累加

对表中年份那一列进行累加,并将返回的数组绘制成折线图 people["年份"].cumsum() people["年份"].cumsum().plot() 运行结果如下图所示:注意此步需要导入matplotlib模块,import matplotlib.pyplot as plt

image.png

1.3 自定义运算

apply(func, axis=0)

  • func:自定义函数
  • axis=0:默认是列,axis=1为行运算

案例:定义每一列最大值-最小值操作

案例中还用到了lambda表达式,在此简单普及一下: - 在python中使用lambda表达式表示匿名函数(即没有函数名的函数) - lambda在内部只能包含一行代码 - :后面就是函数体 - <函数对象名> = lambda <形式参数列表>:<表达式> people.apply(lambda x: x.max()-x.min()) 运行结果如下图所示:

image.png

1.4 逻辑运算

逻辑运算符号 1. $<$ 2. $>$ 3. | 4. &

1.4.1 逻辑运算符

比如,我想筛选出年份>2010的数据,就用到了逻辑运算符:

people[people["年份"] >2010] 运行结果如下图所示:

image.png

1.4.2 逻辑运算函数

query(expr)

  • expr:查询字符串 通过query使得刚才的过程更加方便简单

比如,我们还想判断年份里是否有2018和2019,具体代码如下所示: people["年份"].isin([2018, 2019]) 运行结果如下图所示:True表示是你想要查询的内容,False表示不是你想要查询的内容

image.png