Pandas

Pandas介绍:数据处理工具。

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

为什么使用Pandas:

Numpy已经能够帮助我们处理数据,能够结合matplotlib解决部分数据展示等问题,那么pandas学习的目的在什么地方呢?

  • 边界的数据处理能力
  • 读取文件方便
  • 封装了Matplotlib、Numpy的画图和计算

DataFrame类型:

numpy中创建股票涨跌幅数据形式:
在这里插入图片描述

  • 但是这样的数据形式很难看到存储的是什么样的数据,并且也很难获取相应的数据,不如需要获取某个指定股票的数据,就很难去获取!!
问题:如何让数据更有意义的显示。

在这里插入图片描述

具体演示:
数据准备:

在这里插入图片描述

将ndarray类型转换为DataFrame类型:

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

DataFrame既有行索引又有列索引的二维数组。
  • 给股票涨跌幅数据增加行列索引,显示效果更佳:
  • 增加行索引
    构造行索引序列:
    在这里插入图片描述
  • 或是:
    在这里插入图片描述
  • 添加行索引:
    在这里插入图片描述
  • 增加列索引:
    • 股票的日期是一个时间的序列,我们要实现从前往后的时间还要考虑每月的总天数等,不方便。使用pd.data_range():用于生成一组连续的时间序列(暂时了解)
      在这里插入图片描述
  • 生成一个时间的序列,略过周末非交易日:
    在这里插入图片描述
  • 或是:
    在这里插入图片描述
  • 日期的形式也可以:
    在这里插入图片描述
  • 添加列索引:index代表行索引,columns代表列索引。
    在这里插入图片描述
总结:

1、DataFrame结构

  • DataFrame对象既有行索引,又有列索引
    • 行索引,表明不同行,横向索引,叫index
    • 列索引,表明不同列,纵向索引,叫columns
      在这里插入图片描述
DataFrame常用属性:

在这里插入图片描述

shape形状属性:

在这里插入图片描述

index取行索引列表属性:

在这里插入图片描述

columns取列索引列表属性:

在这里插入图片描述

values直接获取其中ndarray的值:

在这里插入图片描述

T转置属性:

在这里插入图片描述

DataFrame常用方法:
head(5):显示前5行内容。
  • 注意:如果不补充参数,默认是前5行,填入参数N则显示前N行。
    在这里插入图片描述
tail(5):显示后5行内容。
  • 注意:如果不补充参数,默认是后5行,填入参数N则显示后N行。
    在这里插入图片描述
DataFrame索引的设置:
  • 修改行列索引值:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
修改行索引:

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

  • 注意:不能单个设置,只能整体修改。
    在这里插入图片描述
    在这里插入图片描述
修改列索引:

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

  • 注意:不能单个设置,只能整体修改。
    在这里插入图片描述
    在这里插入图片描述
reset_index(drop=True/False)重设索引:
  • reset_index(drop=False)
    • 设置新的下标索引
    • drop:默认为False,不删除原来索引,如果为True,删除原来的索引值。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  • 默认是drop=False。
    在这里插入图片描述
    在这里插入图片描述
注意:这个是不会修改原数据的。

在这里插入图片描述

set_index()以某列值设置为新的索引。
  • set_index(keys,drop=True)
    • keys:列索引名称或者列索引名称的列表
    • drop:boolean,default True.当作新的索引,删除原来的索引
准备数据:
  • df = pd.DataFrame({“month”: [1, 4, 7, 10], “year”: [2012, 2014, 2013, 2014], “sale”: [55, 40, 84, 31]})
  • 注意:以字典的形式创建了一个DataFrame类型。
    在这里插入图片描述
将月份列值设置成新的索引:

在这里插入图片描述

  • 默认是drop=True:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
将多个列的值设置成索引:

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

  • 注:通过刚才的设置,这样DataFrame就变成了一个具有Multilndex的DataFrame
一个MultiIndex的DataFrame是可以用来存储三维数据的。
Multilndex:
  • df = pd.DataFrame({“month”: [1, 4, 7, 10], “year”: [2012, 2014, 2013, 2014], “sale”: [55, 40, 84, 31]})
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 多级或分层索引对象。
    • index属性
      • names:levels的名称
      • levels:每个level的元组值
        在这里插入图片描述
(了解,新版本中已废掉了)Panel:

在这里插入图片描述

具体使用的api手册:

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

为什么看不到它的具体数据呢???
  • 因为电脑是平面的,而Panel是三维的,现在是不能通过二维看三维数据的。通常我们把Panel看作是dataframe的容器:那我们可以索引它其中一个维度,来看到一个dataFrame。

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

Series:
思考:如果获取DataFrame中某个股票的不同时间数据?这样的结构是什么呢?
准备数据
  • 创建一个符合正态分布的10个股票5天的涨跌幅数据
  • stock_change = np.random.normal(0, 1, (10, 5))
    在这里插入图片描述
  • 将ndarray类型的数据转换为DataFrame类型的数据:
  • date = pd.date_range(start=“20180101”, periods=5, freq=“B”)
  • stock = [“股票_” + str(i) for i in range(stock_change.shape[0])]
  • data = pd.DataFrame(stock_change, index=stock, columns=date)
    在这里插入图片描述
  • 取出第2只股票的所有时间列数据:
    在这里插入图片描述
  • 我们发现是Series类型,那什么是Series类型呢?
  • 什么是Series结构呢?我们直接看下面的图:
    在这里插入图片描述
  • 总结:series结构只有行索引。
  • 将前面的涨跌幅数据进行转置,然后获取“股票_0”的所有数据:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
下面这一步相当于是series去获取行索引的值:

在这里插入图片描述

  • 也可以下面这样获取series类型的数据:
    在这里插入图片描述
创建Series:
  • 指定内容,默认索引:
    在这里插入图片描述
    在这里插入图片描述
  • 指定内容,指定索引:
    在这里插入图片描述
    在这里插入图片描述
通过字典数据创建:

在这里插入图片描述

获取Series数据类型的索引和值:

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

  • 总结:DataFrame类型中有Series类型,Series类型中有ndarray类型,也可以DataFrame是Series的容器,Series是ndarray的容器。

总结:pandas的三种数据结构。

2、Panel

  • DataFrame的容器

3、Series

  • 带索引的一维数组
  • 属性
    • index
    • values

总结:

  • DataFrame是Series的容器
  • Panel是DataFrame的容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值