Python之Pandas超详细入门教程 -- 第三章 Pandas中DataFrame运算【基础篇】

1 算术运算

  • add(other) / sub(other)’
    比如进行数学运算加上或者减去具体的一个数字
data['open'].add(1)

2018-02-27    24.53
2018-02-26    23.80
2018-02-23    23.88
2018-02-22    23.25
2018-02-14    22.49

2 逻辑运算

2.1 逻辑运算符号

  • 例如筛选data[“open”] > 22的日期数据
    • data[“open”] > 22返回逻辑结果
data = data.head(10)
data["open"]> 22

结果:
2018-02-27     True
2018-02-26     True
2018-02-23     True
2018-02-22     True
2018-02-14    False
2018-02-13    False
2018-02-12    False
2018-02-09    False
2018-02-08    False
2018-02-07     True
Name: open, dtype: bool
# 逻辑判断的结果可以作为筛选的依据
data[data["open"] > 23].head()
  • 完成多个逻辑判断
# 获取开盘价在23-24之间的前5行数据
data[(data["open"] > 23) & (data["open"] < 24)].head()

2.2 逻辑运算函数

  • query(expr)
    • expr:查询字符串
      通过query使得刚才的过程更加方便简单
data.query("open<24 & open>23").head()
  • isin(values)
    例如判断’open’是否为23.53和23.85
# 可以指定值进行一个判断,从而进行筛选操作
data[data["open"].isin([23.53, 23.85])]

3 统计运算

3.1 统计函数

Numpy当中已经详细介绍,例如min(最小值), max(最大值), mean(平均值), median(中位数), var(方差), std(标准差),mode(众数)。

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

data.max(0)
  • idxmax()、idxmin()
# 求出最大值的位置
data.idxmax(axis=0)

open               2015-06-15
high               2015-06-10
close              2015-06-12
low                2015-06-12
volume             2017-10-26
price_change       2015-06-09
p_change           2015-08-28
turnover           2017-10-26
my_price_change    2015-07-10
dtype: object

3.2 累计统计函数

函数 作用
cumsum 计算前1/2/3/…/n个数的和
cummax 计算前1/2/3/…/n个数的最大值
cummin 计算前1/2/3/…/n个数的最小值
cumprod 计算前1/2/3/…/n个数的积
import matplotlib.pyplot as plt
import pandas as pd

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

# 对p_change进行求和
stock_rise = data['p_change']

# 进行累计求和,并plot显示图形
stock_rise.cumsum().plot()
# 需要调用show,才能显示出结果
plt.show()

在这里插入图片描述

4 自定义运算

  • apply(func, axis=0)
    • func:自定义函数
      • axis=0:默认是列,axis=1为行进行运算
    • 定义一个对列,最大值-最小值的函数
# 获取股票数据中开盘价、闭盘价最大值和最小值的差值
data[['open', 'close']].apply(lambda x: x.max() - x.min(), axis=0)

open     22.74
close    22.85
dtype: float64

5 Pandas画图

pandas.DataFrame.plot

  • DataFrame.plot(kind=‘line’)
    • kind : str,需要绘制图形的种类
      • ‘line’ : line plot (default) 折线图
      • ‘bar’ : vertical bar plot 柱状图
      • ‘barh’ : horizontal bar plot 横向柱状图
        关于“barh”的解释:
        http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.barh.html
      • ‘hist’ : histogram 直方图
      • ‘pie’ : pie plot 饼图
      • ‘scatter’ : scatter plot 散点图

创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

Dragon少年 | 文

如果本篇博客有任何错误,请批评指教,不胜感激 !
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hhladminhhl/article/details/109180806