第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. [LeetCode] Expressive Words 富于表现力的单词

    Sometimes people repeat letters to represent extra feeling, such as "hello" -> "he ...

  2. Solve Error: node postinstall sh: node: command not found

    When install the yeoman using the following command: npm install -g yo You might have the following ...

  3. 转载:[Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    原文:http://www.cnblogs.com/wang-meng/p/5898837.html 一:继承.抽象类与接口区别.访问控制(private, public, protected,默认) ...

  4. Android adb 串口调试

    adb (串口输入) echo 1 > /sys/class/remount/need_remount; mount -o rw,remount /system                  ...

  5. 解密Redis的持久化和主从复制机制

    Redis持久化 Redis 提供了多种不同级别的持久化方式: RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AOF 持久化记录服务器执 ...

  6. 数据库 case when then 的用法 (举个栗子~~~)

    select a.TradeType,a.TradeState,a.Pname,a.OutTradeNo,a.*, (CASE a.TradeType when '1' then '充值' when ...

  7. 微信小程序 组件 Demo

    文字跑马灯效果:       http://www.wxapp-union.com/portal.php?mod=view&aid=1038 触摸水波涟漪效果:   http://www.wx ...

  8. LeetCode 50 - Pow(x, n) - [快速幂]

    实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10输出: 1024.00000 示例 2: 输入: 2.10000, 3输出: 9.26100 示例 ...

  9. iOS 自定义一个常规的TabBar

    #import "WJWBaseTabBarViewController.h" #import "WJWTabBarButton.h" #import &quo ...

  10. [daily]gtk程序不跟随系统的dark主题

    问题描述: 我的系统主题是dark的.在使用mysql-workbench是,里边的一些线条就跟随了系统文字的主要使用了灰白色. 这样在白色画布里就看不见这些线条了. 方法: 设置mysql-work ...