第16天pandas的基本功能(一)

灵活的二进制操作

  • 体现在2个方面

    • 支持一维和二维之间的广播

    • 支持缺失值数据处理

  • 四则运算支持广播

    • +add - sub *mul /div

    • divmod()分区和模运算(返回商和余数2个结果)

      • 案例:a,b=divmod(一维矩阵)

    • 空值处理

      • 矩阵中空值用NaN代替

      • NaN+值=NaN

      • np(numpy).nan表示空值

      • 填充空值: fillna(value=值)

      • np.nan == np.nan 结果为False

        • 如果a矩阵和b矩阵中有空值 那么 a == b 结果:False

        • 相同:a.equal(b )结果为:True.带空的矩阵比较推荐使用equal

    • 组合

      • 从df2中把df1的数据不全

        • df1.combine_first(df2)

      • 连接

        • 连接二维矩阵

          • df1.concat(df2,axis=0/1)

        • 连接一维矩阵

          • pd.concat([df1,df2])

        • 一维二维通用

          • df1.append(df2)

    • 统计

      • 所有统计函数都支持行或列~~~

        • sum(0/1) mean(0/1)

      • 统计函数

        功能 描述
        count 非NA观测数量
        sum 价值总和
        mean 价值的平均值
        mad 平均绝对偏差
        median 算术值的中值
        min 最低限度
        max 最大值
        mode 模式
        abs 绝对值
        prod 价值的产物
        std 贝塞尔校正的样本标准偏差
        var 无偏差
        sem 平均值的标准误差
        skew 样本偏斜(第3时刻)
        kurt 样本峰度(第4个时刻)
        quantile 样本分位数(值为%)
        cumsum 累计金额
        cumprod 累积产品
        cummax 累积最大值
        cummin 累积最小值
    • 统计函数,统计的时候自动跳过空值

    • len(数组)获取行数,包括Nan所在的行~~~count(不包括)

    • include

      • #可以指定摘要统计的东西
        矩阵.describe(include=['object'])
        矩阵.describe(include=['number'])
    • 最大最小索引

      • 最大数和最小数对应的索引位置

        • 最大 矩阵.idxmax(axis=0/1)

        • 最小 矩阵 .idxmin(axis=0/1)

    • 最常出现值模式

      • a.value_counts() 统计一维数组中每个元素出现的次数

      • a.mode()统计数组中出现次数最多的值

    • 分段/面元

      • cut和qcut

        • 共同点

          • 都可以分为好多份 pd.cut/qcut(df,4) qcut 是对等的 cut 是随机的

        • 不同点

          • pd.cut(df,[数组]) qcut不支持

        • 语法 pd.cut(df,[切点列表],right=True/False)

          • 示列

          #分2组  大于18的为成年,小于18的为未成年,统计个数 
          a = pd.Series([4,5,5,2,3,1,8,9,3,15,6,45,56,1,56,2,20,4,5,2,1,8,18,1,82,20,25,20,20,12,13,14])
          b = pd.cut(a,[0,18,100],labels=['未成年','成年'],right=False)
          b.value_counts()
    • 为矩阵添加处理函数/支持多个函数

      • 链式写法

        • (df.pipe(函数名,参数).pipe(函数名,参数).......)

      • apply

        • df.apply(函数名,axis=0/1) 为当前行或列添加处理函数

          • 示列

          #12.判断年龄是否成年: 18岁以上成年   #成年和未成年获救比例
          """
          1.判断是否成年
          2.
          """
          def age_old(b):
             
             c = b['Age']
             if c > 18:
                 return '成年'
             elif c < 18:
                 return '未成年'
             else:
                 return '空值'
          #创建新列
          df['chegnnian'] = df.apply(age_old,axis=1)
          #设置全家的汉子显示
          plt.rcParams['font.size'] = 15

          h_j = df.groupby(by=['Survived','chegnnian']).size()
          plt.pie(h_j,labels=['成年未获救','未成年未获救','空值未获救','成年获救','未成年获救','空值获救'],shadow=True,autopct='%1.1f%%')
          plt.axis('equal') #设置圆的形状 正圆
          plt.show()
      • map

        • df.applymap == df.map()

          • 示列

            #10.    以下肉类数据源,food都转换为小写,添加一个动物列,而且字符串都是小写
            data = pd.DataFrame({'food': ['bacon', 'pulled pork', 'bacon','Pastrami', 'corned beef', 'Bacon','pastrami', 'honey ham', 'nova lox'],
            'price': [4, 3, 12, 6, 7.5, 8, 3, 5, 6]})
            data['food'].str.lower()

            #新列: 动物列
            animal = { 'bacon': 'Pig', 'pulled pork': 'pIg', 'pastrami': 'cOw', 'corned beef': 'Co', 'honey Ham': 'pig', 'nova lox': 'Salmon' }
            x = data['food'].map(animal)
            data['animal'] = x
            data

pandas的基本功能(一)的更多相关文章

  1. pandas的筛选功能,跟excel的筛选功能类似,但是功能更强大。

    Select rows from a DataFrame based on values in a column -pandas 筛选 https://stackoverflow.com/questi ...

  2. (数据科学学习手札134)pyjanitor:为pandas补充更多功能

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 pandas发展了如此多年,所包含的功能已 ...

  3. python数据分析之Pandas:基本功能介绍

    Pandas有两个主要的数据结构:Series和DataFrame. Series是一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据标签构成.来看下它的使用过程 In [1]: from  ...

  4. Pandas常用基本功能

    Series 和 DataFrame还未构建完成的朋友可以参考我的上一篇博文:https://www.cnblogs.com/zry-yt/p/11794941.html 当我们构建好了 Series ...

  5. Pandas | 21 日期功能

    日期功能扩展了时间序列,在财务数据分析中起主要作用.在处理日期数据的同时,我们经常会遇到以下情况 - 生成日期序列 将日期序列转换为不同的频率 创建一个日期范围 通过指定周期和频率,使用date.ra ...

  6. Pandas | 05 基本功能

    到目前为止,我们了解了三种Pandas数据结构以及如何创建它们.接下来将主要关注数据帧(DataFrame)对象,因为它在实时数据处理中非常重要,并且还讨论其他数据结构. 一.系列基本功能 编号 属性 ...

  7. pandas replace 替换功能function

    list like replace method dict like replace method regex expression import pandas as pd import numpy ...

  8. 3.1,pandas【基本功能】

    一:改变索引 reindex方法对于Series直接索引,对于DataFrame既可以改变行索引,也可以改变列索引,还可以两个一起改变. 1)对于Series In [2]: seri = pd.Se ...

  9. pandas的基本功能

    一.重新索引 (1)reindex方式 obj = pd.Series(['blue', 'purple', 'yellow'], index=[0, 2, 4]) print(obj) obj.re ...

随机推荐

  1. 变量类型-Tuple

    教程:一:元组的创建        元组(tuple)与列表类似,不同之处在于元组的元素不能修改    (1)tuple写在圆括号之间,元素用逗号隔开    (2)元组元素的类型可以不同    (3) ...

  2. 使用Java客户端操作elasticsearch(二)

    承接上文,使用Java客户端操作elasticsearch,本文主要介绍 常见的配置 和Sniffer(集群探测) 的使用. 常见的配置 前面已介绍过,RestClientBuilder支持同时提供一 ...

  3. PAT甲级1123 Is It a Complete AVL Tree【AVL树】

    题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805351302414336 题意: 给定n个树,依次插入一棵AVL ...

  4. Python 学习笔记9 循环语句 For in

    For in 循环主要适用于遍历一个对象中的所有元素.我们可以使用它遍历列表,元组和字典等等. 其主要的流程如下:(图片来源于: https://www.yiibai.com/python/pytho ...

  5. querySelector与getElementBy的区别

    1,querySelector() 方法返回匹配指定 CSS 选择器元素的第一个子元素 . 该方法只返回匹配指定选择器的第一个元素.如果要返回所有匹配元素,需要使用 querySelectorAll( ...

  6. 2018-2019-2-20175303 实验二 《Java开发环境的熟悉》实验报告

    2018-2019-2-20175303 实验二 <Java开发环境的熟悉>实验报告 姓名:柴轩达       学号:20175303     班级:1753       实验课程:JAV ...

  7. MYSQL 事务和用户权限

    一. 什么是事务:简单说,所谓事务就是一组操作,要么操作都成功要么都不成功. 二.事务的使用流程 1. 第一步:开启一个事务,start transaction; 2. 第二步:正常的SQL语句操作, ...

  8. JAVA RPC (五) 之thrift序列化RPC消息体

    让大家久等了.继续更新thrift序列化的消息体,下面我们一步一步的看一看thrift的rpc是怎么实例化消息体的. 首先我们先准备一个request文件 namespace java bky str ...

  9. kubernetes安装

    本文主要参考自: https://blog.csdn.net/real_myth/article/details/78719244 还有一份更适合在生产环境使用的超强高可用(多master,nginx ...

  10. HDU 1754 线段树入门解题报告

    ---恢复内容开始--- 题意:给定区间,每个人的成绩, Q次询问,求每次询问区间中的最大值 思路:构造线段树 代码: #include<stdio.h> #include<algo ...