Python数据分析——Pandas(3)

学习目标

  • 目标
    • 使用describe完成综合统计
    • 使用max完成最大值计算
    • 使用min完成最小值计算
    • 使用mean完成平均值计算
    • 使用std完成标准差计算
    • 使用cumsum等实现累计分析
    • 应用逻辑运算符号实现数据的逻辑筛选
    • 应用isin实现数据的筛选
    • 应用query实现数据的筛选
    • 应用add等实现数据间的加法运算
    • 应用apply函数实现数据的自定义处理
  • 应用
    • 股票每日数据的统计

1 算术运算

  • add(other)

比如进行数学运算加上具体的一个数字

data['最低价'].add(1)

 

  • sub(other)

如果想要得到每天的涨跌大小?求出每天收盘价与开盘价的价格差

# 1、筛选两列数据
close = data['收盘价']
open1 = data['开盘价']
# 2、收盘价减去开盘价
data['收盘价减去开盘价'] = close.sub(open1)
data.head()

2 逻辑运算

2.1 逻辑运算符号<、 >、|、 &

  • 例如筛选'最低价' > 18的日期数据
    • data['最低价'] > 18返回逻辑结果
data['最低价'] > 18

# 逻辑判断的结果可以作为筛选的依据
data[data['最低价'] > 18]

  • 完成一个多个逻辑判断, 筛选'最低价' > 18并且'最高价' > 20
data[(data['最低价'] > 18) & (data['最高价']>20)]

2.2 逻辑运算函数

  • query(expr)
    • expr:查询字符串

通过query使得刚才的过程更加方便简单

data.query("最低价 > 18 & 最高价 > 20")

  • isin(values)

例如判断'最低价'是否为17.51,18.05

# 可以指定值进行一个判断,从而进行筛选操作
data[data['最低价'].isin([17.51, 18.05])]

  

3 统计运算

3.1 describe()

综合分析: 能够直接得出很多统计结果,countmeanstdminmax 等

# 计算平均值、标准差、最大值、最小值
data.describe()

  

3.2 统计函数

Numpy当中已经详细介绍,在这里我们演示min(最小值), max(最大值), mean(平均值), median(中位数), var(方差), std(标准差),mode(众数)结果,

countNumber of non-NA observations
sumSum of values
meanMean of values
medianArithmetic median of values
minMinimum
maxMaximum
modeMode
absAbsolute Value
prodProduct of values
stdBessel-corrected sample standard deviation
varUnbiased variance
idxmaxcompute the index labels with the maximum
idxmincompute the index labels with the minimum

对于单个函数去进行统计的时候,坐标轴还是按照这些默认为“columns” (axis=0, default),如果要对行“index” 需要指定(axis=1)

  • max()、min()
# 使用统计函数:0 代表列求结果, 1 代表行求统计结果
data.max(0)

  • std()、var()
# 方差
data.var(0)

# 标准差
data.std(0)

  • median():中位数

中位数为将数据从小到大排列,在最中间的那个数为中位数。如果没有中间数,取中间两个数的平均值。

df = pd.DataFrame({'COL1' : [2,3,4,5,4,2],
                   'COL2' : [0,1,2,3,4,2]})

df.median()

4 累计统计函数

函数作用
cumsum计算前1/2/3/…/n个数的和
cummax计算前1/2/3/…/n个数的最大值
cummin计算前1/2/3/…/n个数的最小值
cumprod计算前1/2/3/…/n个数的积

以上这些函数可以对series和dataframe操作

这里我们按照时间的从前往后来进行累计

  • 排序
# 排序之后,进行累计求和
data = data.sort_index()

  • 对'前收盘'进行求和
stock_rise = data['前收盘']
# plot方法集成了前面直方图、条形图、饼图、折线图
stock_rise.cumsum()

那么如何让这个连续求和的结果更好的显示呢?

如果要使用plot函数,需要导入matplotlib.

import matplotlib.pyplot as plt
# plot显示图形
stock_rise.cumsum().plot()
# 需要调用show,才能显示出结果
plt.show()

5 自定义运算

  • apply(func, axis=0)
    • func:自定义函数
    • axis=0:默认是列,axis=1为行进行运算
  • 定义一个对列,最大值-最小值的函数
data[['开盘价', '收盘价']].apply(lambda x: x.max() - x.min(), axis=0)

6 小结

  • 算术运算【掌握】
  • 逻辑运算【知道】
    • 1.逻辑运算符号
    • 2.逻辑运算函数
    • 对象.query()
    • 对象.isin()
  • 统计运算【知道】
    • 1.对象.describe()
    • 2.统计函数
    • 3.累积统计函数
  • 自定义运算【知道】
    • apply(func, axis=0)
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值