Pandas基本数据操作、排序、算术运算、逻辑运算

索引操作:

  • 为了更好的理解这些基本操作,我们将读取一个真实的股票数据。关于文件操作,后面介绍,这里只先用一下API

读取文件

在这里插入图片描述

  • 删除一些列,让数据更简单些,再去做后面的操作:
  • data = data.drop([“ma5”, “ma10”, “ma20”, “v_ma5”, “v_ma10”, “v_ma20”], axis=1)
    在这里插入图片描述
    在这里插入图片描述
  • 注意:不能直接进行数字索引。
    在这里插入图片描述
    在这里插入图片描述
  • Numpy当中我们已经讲过使用索引选取序列和切片选择,pandas也支持类似的操作,也可以直接使用列名、行名称,甚至组合使用。
直接使用行列索引(先列后行):
  • 获取“2018-02-27”这天的’close’的结果。
    在这里插入图片描述
    在这里插入图片描述
  • 注意:必须先列后行。
    在这里插入图片描述
    在这里插入图片描述
结合loc或者iloc使用索引:
  • 获取从“2018-02-27”到“2018-02-22”的open列的结果。
    在这里插入图片描述
使用loc只能指定行列索引的名字。

在这里插入图片描述
在这里插入图片描述

  • 总结:如果不使用loc关键字的话,需要先列后行,如果使用loc关键字的话,那就可以先行后列了。
获取前100天的数据的“open”列的结果:
使用iloc可以通过索引的下标去获取:

在这里插入图片描述

  • 也可以使用切片:
    在这里插入图片描述
    在这里插入图片描述
获取行第1天到第4天的[“open”, “close”, “high”, “low”]这4个指标的结果:

在这里插入图片描述
在这里插入图片描述

总结:

  • 基本数据操作
    • 索引操作
      • 直接索引
        • 先列后行
      • 按名字索引
        • loc
      • 按数字索引
        • iloc
      • 组合索引
        • 数字、名字
赋值:

在这里插入图片描述

对DataFrame当中的close列进行重新赋值为1:

在这里插入图片描述

  • 或是:
    在这里插入图片描述
注意:都是修改原数据的

排序

排序有两种形式:

  • 一种对内容进行排序;
  • 一种对索引进行排序
对DataFrame类型的数据使用df.sort_values()对内容进行排序:

使用df.sort_values(key=,ascending=)对内容进行排序

  • 单个键或者多个键进行排序,默认升序
  • ascending=False:降序
  • ascending=True:升序
按照涨跌幅大小进行降序排序:

在这里插入图片描述

按照涨跌幅大小进行升序排序:

在这里插入图片描述

默认是升序:

在这里插入图片描述

按照多个键进行排序:

在这里插入图片描述
在这里插入图片描述

  • 先按着high排序,high值一样的,再按着p_change列进行排序,也就是第一个排序规则一样的内容,再按着第二个规则进行排序。
对DataFrame类型的数据使用df.sort_index对索引进行排序:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对Series类型的数据使用series.sort_values()对内容进行排序:
  • data = pd.read_csv("./data/stock_day.csv")
  • data = data.drop([“ma5”, “ma10”, “ma20”, “v_ma5”, “v_ma10”, “v_ma20”], axis=1)
    在这里插入图片描述
提示:由于series排序时,只有一列,不需要排序字段参数。

在这里插入图片描述
在这里插入图片描述

  • 默认是True:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
对Series类型的数据使用series.sort_index()对索引进行排序:

在这里插入图片描述

  • 默认是True:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
总结:
  • sort_values对内容进行排序
  • sort_index对索引进行排序

算术运算:

准备数据:
  • data = pd.read_csv("./data/stock_day.csv")
  • data = data.drop([“ma5”, “ma10”, “ma20”, “v_ma5”, “v_ma10”, “v_ma20”], axis=1)
    在这里插入图片描述
add(other):比如进行数学运算加上具体的一个数字。

在这里插入图片描述
在这里插入图片描述

  • 也可以:
    在这里插入图片描述
sub(other):比如进行数学运算减上具体的一个数字。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果想要得到每天的涨跌大小?求出每天close-open价格差。
  • 收盘价减去开盘价:
    在这里插入图片描述
其它四则运算:

在这里插入图片描述
在这里插入图片描述

也可以对整个DataFrame进行运算:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

逻辑运算:

在这里插入图片描述

逻辑运算符号:< > | &
筛选出p_change > 2的日期数据,返回逻辑结果:

在这里插入图片描述
在这里插入图片描述

  • 将逻辑判断的结果作为筛选的依据:
    在这里插入图片描述
  • 完成多个逻辑判断:筛选出p_change > 2 并且 low > 15
    在这里插入图片描述
    在这里插入图片描述
  • 需要带上括号:
    在这里插入图片描述
  • 将逻辑判断的结果作为筛选的依据:
    在这里插入图片描述

逻辑运算函数:

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

在这里插入图片描述

isin(values):比如判断‘turnover’是否为4.19, 2.39
  • 可以指定值进行一个判断,从而进行筛选操作。
    在这里插入图片描述
    在这里插入图片描述

统计运算:

在这里插入图片描述

  • describe():综合分析能够直接得出很多统计结果,count, mean(平均值), std(标准差), min(最小值), max(最大值)等。
    在这里插入图片描述
    min最小值,max最大值,mean平均值,median中位数,var方差,std标准差结果。
    在这里插入图片描述
    在这里插入图片描述
  • 对于单个函数去进行统计的时候,坐标轴还是按照这些默认为"columns"(axis=0,default),如果要对行"index"需要指定(axis=1)
注意:使用统计函数时0代表对列求结果,1代表对行求统计结果。
最大值:

在这里插入图片描述
在这里插入图片描述

  • 或是:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
最小值:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方差:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标准差:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

平均值:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

中位数:
  • 中位数是将数据从小到大排列,在最中间的那个数为中位数。如果没有中间数,取中间两个数的平均值。
  • df = pd.DataFrame({“col1”: [2, 3, 4, 5, 4, 2], “col2”: [0, 1, 2, 3, 4, 2]})
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
最大值的索引:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 注意:等于1一般是没有意义的。
    在这里插入图片描述
最小值的索引:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

累计统计函数:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 下面的5.70是上面的2.68+3.02得到的,下面的8.12是5.70+2.42得到的,依此类推。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 也可以下面这样:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
自定义运算:

在这里插入图片描述

定义一个函数用于求出对每列进行最大值减去最小值:

在这里插入图片描述
在这里插入图片描述

  • 上面就对每一列进行了一个按最大值减去最小值的一个操作。
    在这里插入图片描述
    在这里插入图片描述
  • 或者:
    在这里插入图片描述
总结:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值