第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. (53)Wangdao.com第七天_JavaScript 强制类型转换

    其他进制的数字 二进制    以 0b 开头的 Number 八进制    以 0 开头的 Number 十六进制    以 0x 开头的 Number 注意:无论是多少进制的数字,输出都是十进制 强 ...

  2. ECMA Script 6_数组的扩展_扩展运算符

    1. 扩展运算符 内部调用的是数据结构的 Iterator 接口, 因此只要具有 Iterator 接口的对象,都可以使用扩展运算符 ... 如 map,,,, [...arr] 扩展运算符(spre ...

  3. Wireshark简单使用教程2——附视频

    视频链接https://www.bilibili.com/video/av35336089/ 目录 对抓取的流量包进行简单的说明 Wireshark的捕获过滤器和显示过滤器 内容 1.对抓取的流量包进 ...

  4. 在docker上部署mysql

    1.拉取官方镜像5.6的版本.(查看有哪些版本,可以在阿里云的镜像仓库查看,我配置的镜像是阿里云的) docker pull mysql:5.6 2.查看拉取的镜像,获取镜像id docker ima ...

  5. sqlmap tamper下模块的使用

    使用方法 根据实际情况,可以同时使用多个脚本,使用-v参数可以看到payload的变化. sqlmap.py -u "http://www.target.com/test.php?id=12 ...

  6. oracle 约束与索引

    1.约束 1.not null(列表不为空) create table 表名(列名1 列表属性2 not null,列名1 列表属性2 not null); 2.unique(列表不能重复) crea ...

  7. 更改oracle数据库密码(因为密码过期)

    更改system的密码,然后用此用户登录数据库,在数据库里修改指定用户密码 alter user username identified by newpassword; --修改忘记密码用户的密码 让 ...

  8. iOS 代码混淆

    一般做了防调试的话,被调试进程会退出的,是防动态分析措施. 代码混淆加花这些是防静态分析措施. 反调试是防动态分析措施. 混淆的方法方法名混淆其实就是字符串替换,有2个方法可以,一个是#define, ...

  9. Asp.net 使用线程池实例

    实际开发经常会使用线程,如果每次使用都是创建线程.启动线程,然后销毁线程,从性能上来讲,非常占用系统开销,当线程达到一定量的时候会影响程序的运行和处理效率. 使用线程池:好处:线程池是一种多线程处理形 ...

  10. es6下 vue实例属性template不能使用

    esm模式下 不能使用template,需要引入非esm的vue.js,查看vue源码的包的dist目录下 文件标有esm是支持ems,没有标记,就是不支持(这个知识,怎么说了,应该属于webpack ...