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

1,839 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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()函数:

  • 可以获取最大值所在的位置
  • 返回所在位置的索引
# 获取最大值所在位置
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