数据读取结构 -  DataFrame

  • Series (collection of values)
  • DataFrame (collection of Series objects)
  • Panel (collection of DataFrame objects)

DataFrame  可以理解为一个矩阵结构, 每一列都是一个 Series

简单得使用展示

一维

二维

样本文件 food_info.csv

表示食品中的各种营养素指标

样本文件 titanic_train.csv

泰坦尼克号船员获救案例

属性

.dtypes 属性

查看  DataFrame  结构的内部数据类型

常见的属性值

此属性也可以作为方法使用

可以进行数据类型得更改, 但是更改必须要赋值才可以生效

直接使用仅仅是预览功能,而且如果此时赋值直接再本来都是 int 类型得里面加个 字符串是不会报错得, 而是将所有得类型自动转化成 object (字符串) 从而适配全部

.columns  属性

查看  DataFrame  的列名 (对应样本文件的每个营养素指标,得到一个 list 结构

也可以继续执行  .tolist()  方法返回一个列表

简单使用展示

.shape 属性

查看维度, 空间结构表示 (行, 列)

用于查看规模

操作方法

read_csv 方法

读取 csv 文件转为为  DataFrame  类型

info 方法

查看信息预览

head 方法 / tail 方法

输出 头 / 尾 n 行数据

传入参数  count(int)  未指定时, 默认输出 5 行, 制定后输入指定行数

传给参数后会简化输出结果

取行 - loc 方法

老版本貌似也可以使用  .ix   属性来取值, 用法是一样的, 但是会标红以及提示报错

指定索引取值, 此处不直接使用索引而是用  loc  方法再次封装了一下

传入参数为 索引号, 当然指定不存在的索引是会报错的

使用此方法也可以基于索引进行切片,

也可以直接定位到属性值而不是一行的样本, 格式如图, 先写行号在写属性名, 这样定位到一个值之后是可以直接赋值修改操作的

取列 - ["..."]

取列   按照字段字符串来取这一列的值, 想取多个列就传入多个值, 取索引列的话就用   .index  即可 , 索引列也可以进行修改赋值

赋值   直接对一列进行赋值操作会改变这一列的所有的值, 如果想赋值多个就传入列表即可,传入的如果数据不对其就报错超出索引

注意取多个列的时候要用 [] 再套一层

示例展示

取列得时候也可以直接用 .列名 这样得类似属性得方式直接取出来, 但是这样得话容易于内置函数冲突

因此并不推荐, 更推荐使用 [...] 得形式更安全

运算

类似于  numpy  中的运算, 都是对一列全部的数据进行运算

如果运算值也是列. 则列之间如果数据对应(维度一样)的话则每行的多列进行运算

运算后的结果可以再保存进去, 但是必须要求维度一致

运算函数

取到列之后进行函数调用, 可以进行最大值  .max  , 最小值  .min  , 均值  .mean  等运算

排序操作 - sort_values

参数 :

  列名,

  inplace - 在原有基础上还是新拿出来

  ascending - 升序, 默认是True表示升序, 把 NaN 放在最后面

排序序号 - reset_index

使用  sort_values 后的指定的列排序成功了. 但是序号会按照之前的行号来处理. 看起来很不方便

使用 此函数进行 index 重新处理,  参数 drop 表示丢弃之前的序号

判断空值(缺失值) - isnull

pd.isnull( )  传入一列, 进行判断空值输出 True/False 的列名映照序列

在 [] 中使用可以取出反向过滤非空值及行号, 也可以进行统计

丢弃指定值  - dropna

指定列的指定值进行丢弃

axis  指定丢弃值

subset  指定丢弃列

列关系运算 - pivot_table

正常思路按照  python  中的语法要进行比较繁琐的操作, 而  pandas  中进行了相应的封装

参数:

   index   按照分类的列名, 基准, 不可以填入多个值

   values   统计结果所用的变量, 可以填入多个值

   aggfunc   统计结果的方式, 默认是  mean 均值方式

此处的案例: 求分析不同  Pclass (船舱等级) 的  Survived  (获救人数) 的几率

此处的案例: 求分析不同  Pclass  (船舱等级) 的  Age  (年龄) 的平均值

此处的案例: 求分析不同码头之间的船票价格以及获救与否之间的关系

转换时间格式 - to_datetime

原有的时间格式是 1948/01/01 使用此函数可以转换为更标准时间格式

自定义函数 - apply

pandas 内置的函数不能满足自己的需求的时候可以自自定义函数来使用 apply 来进行调用处理

即再一次的封装使用更加方便

案例: 返回第100行数据

案例: 返回所有字段空值的计数

案例: 字段数据替换

案例: 年龄判断

数据读取结构 -  Series

DataFrame 中的每一列都是一个  Series

创建  Series

创建需要引入 Series 以及使用此类进行实例化

参数传递为 值以及 index 序号, index 可以设置为 字符串

通过 index 设置的字符串可以实现索引操作

属性

.index 查看创建索引

索引也可以设置为其他非数字

在创建的时候也可以指定索引值, 不一一对应也没关系会用 NaN 填充

[] 索引使用

索引得使用和列表类似, 直接索引取值赋值新增加值都可以

注意索引可以取多个值, 但是取多个值得时候一定要在[] 内, 然后外面再套一层 [] 才可以

而且如果此时赋值直接再本来都是 int 类型得里面加个 字符串是不会报错得,

而是将所有得类型自动转化成 object (字符串) 从而适配全部

.values 查看所有值

类型本质为 ndarray

方法

排序

基本上很少用, 很少会对  Series 进行排序

运算

相同维度的  Series  彼此可以直接运算

数据分析 - pandas 模块的更多相关文章

  1. Python数据分析 Pandas模块 基础数据结构与简介(一)

    pandas 入门 简介 pandas 组成 = 数据面板 + 数据分析工具 poandas 把数组分为3类 一维矩阵:Series 把ndarray强大在可以存储任意数据类型可以专门处理时间数据 二 ...

  2. Python数据分析 Pandas模块 基础数据结构与简介(二)

    重点方法 分组:groupby('列名') groupby(['列1'],['列2'........]) 分组步骤: (spiltting)拆分 按照一些规则将数据分为不同的组 (Applying)申 ...

  3. Pandas模块:表计算与数据分析

    目录 Pandas之Series Pandas之DataFrame 一.pandas简单介绍 1.pandas是一个强大的Python数据分析的工具包.2.pandas是基于NumPy构建的. 3.p ...

  4. Python 数据处理扩展包: numpy 和 pandas 模块介绍

    一.numpy模块 NumPy(Numeric Python)模块是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list str ...

  5. 关于Python pandas模块输出每行中间省略号问题

    关于Python数据分析中pandas模块在输出的时候,每行的中间会有省略号出现,和行与行中间的省略号....问题,其他的站点(百度)中的大部分都是瞎写,根本就是复制黏贴以前的版本,你要想知道其他问题 ...

  6. Pandas模块

    前言: 最近公司有数据分析的任务,如果使用Python做数据分析,那么对Pandas模块的学习是必不可少的: 本篇文章基于Pandas 0.20.0版本 话不多说社会你根哥!开干! pip insta ...

  7. python 数据分析--pandas

    接下来pandas介绍中将学习到如下8块内容:1.数据结构简介:DataFrame和Series2.数据索引index3.利用pandas查询数据4.利用pandas的DataFrames进行统计分析 ...

  8. Python数据分析--Pandas知识点(二)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表 ...

  9. 4 pandas模块,Series类

      对gtx图像进行操作,使用numpy知识 如果让gtx这张图片在竖直方向上进行颠倒.   如果让gtx这张图片左右颠倒呢?   如果水平和竖直方向都要颠倒呢?   如果需要将gtx的颜色改变一下呢 ...

随机推荐

  1. 5.安装bacula-web(监控页面)

    1.   安装bacula-web(监控页面) 用途:监控bacula状态. http://docs.bacula-web.org/en/master/index.html bacula-web-7. ...

  2. 【linux】ubuntu修改系统时间

    ubuntu修改时间步骤 ① 先把系统校验时间的程序停止掉 /lib/systemd/systemd-timesyncd systemd 开始,包括了一个名为systemd-timesyncd 的守护 ...

  3. 基于递归的BFS(Level-order)

    上篇中学习了二叉树的DFS深度优先搜索算法,这次学习另外一种二叉树的搜索算法:BFS,下面看一下它的概念: 有些抽象是不?下面看下整个的遍历过程的动画演示就晓得是咋回事啦: 了解其概念之后,下面看下如 ...

  4. JVM命令jinfo

          jinfo也是jvm中参与的一个命令,可以查看运行中jvm的全部参数,还可以设置部分参数.   格式      jinfo [ option ] pid      jinfo [ opti ...

  5. visual studio 和visual studio code 的区别是什么?

    区别有三: 区别一:含义不一样. Visual Studio(简称VS)是美国微软公司的开发工具包系列产品,是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代码 ...

  6. 通过自动回复机器人学Mybatis---基础版

    第1章 案例简介 介绍要实现的案例情况,后面会通过这个案例来学习 Mybatis 第2章 实战第一部----黎明前的黑暗 在没有 Mybatis 的情况下,使用 Jsp + Servlet + Jdb ...

  7. python_连接MySQL数据库(未完)

    1.增 # 导入库 import pymysql # 创建连接 conn = pymysql.connect(host='localhost',user='root',password='fuqian ...

  8. Mysql中用exists代替in

         exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的 ...

  9. mysqldump表损坏问题

    遇到的问题:mysqldump: Error 1194: Table 'user' is marked as crashed and should be repaired when dumping t ...

  10. Android: samil语法指令集-基于dex文件结构的寄存器虚拟机

    Smali文件结构解   Smali文件与java中的类是一一对应的,包括内部类和匿名内部类也会生成对应的smali文件(典型的比如实现某个接口的匿名内部类),所以你会看到.smali文件比.java ...