DataFrame
 
    DataFrame是一个【表格型】的数据结构,可以看作是【由Series组成的字典】(共用同一个索引)。DataFrame由一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维扩展到多维。DataFrame既有行索引,也有列索引。
 
    · 行索引:index
    · 列索引:columns
    · 值:values(numpy的二维数组)
 

 
    1)DataFrame的创建
      最常用的方法是传递一个字典来创建。DataFrame以字典的键作为每一【列】的名称,以字典的值(一个数组)作为每一列。  此外,DataFrame会自动加上每一行的索引(和Series一样)。    
    同Series一样,若传入的列与字典的键不匹配,则相应的值为NaN。
 

    所有的列都共用同一组index 作为行索引。如果所传的字典和columns不匹配,就显示为NaN。
 
    DataFrame属性:values  columns  index  shape
 
DataFrame() 参数说明
Init signature: DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
Docstring:
Two-dimensional size-mutable, potentially heterogeneous tabular data
 
    data:可以传递一个ndarray类型的二维数组
    index:一维
    columns:一维
 
实际工作中,DataFrame类型数据的创建都是通过读取CSV格式文件中的内容进行创建的。用来处理文件数据的。
 
 
 
    2)DataFrame的索引
        
            (1)对列进行索引
 
                    - 通过类似字典的方式

                    - 通过属性的方式

                        df对象有如下4中属性:
                        Type: DataFrame
                        String form:
                        height age sex weight
            
                对于DataFrame而言,列名,就相当于属性。
                DataFrame 是统计数据时用的表格,某一个事物的属性,没一个属性就对应DataFrame中的列名。
 
                如何检索DataFrame中的行数据呢?
                    #因为没一行是一条数据,不是DataFrame的属性,
                    #所以不能用属性的方式检索DataFrame的行
 
 
            
            可以将DataFrame的列获取为一个Series。返回的Series拥有原DataFrame相同的索引,且name属性也已经设置好了,就是相应的列名。
 
            (2)对行进行索引            
                    - 使用ix[]来进行索引 (已经过时了,可以考虑不用)
                    - 使用.loc[]加index来进行索引

            对于切片而言,没有列切片,因为列是属性。
            loc[]切片,左开右闭。
 
                    - 使用.iloc[]加整数来进行索引               
                iloc[]进行切片,左闭右开。

                对行的检索返回一个Series,index为原来的columns。
 
                如果多多行数据进行检索,返回的是DataFrame类型的数据。
 
                DataFrame自身有bug,索引为汉字时,有时无法检索结果。
 
            (3)对元素进行索引 
 
                    - 使用列索引、再使用行索引
 

                    - 使用行索引(iloc[3,1])相当于两个参数;iloc[[3,3]]里的[3,3]看作一个参数。再使用列索引。

        检索行时,参数可以多个,但是列,无法完成这样的操作。
 
                    - 使用values属性(二维numpy数组 ndarray)

 
 
                注意:直接使用中括号时:
                    · 索引表示的是列索引
                    · 切片表示的是行切片
 
 
=====================
练习:
使用多种方法对ddd进行索引和切片

=====================
 
    3)DataFrame的运算
            
            (1)DataFrame之间的运算
              同Series一样:
                    · 在运算中自动对齐不同索引的数据
                    · 如果索引不对应,则补NaN
                
                创建DataFrame df1 不同学生的各科目成绩,月考一
 

                创建DataFrame df2  不同学生的各科目成绩,月考一,有新生转入

 
 
Python Operator Pandas Method(s)
+ add()
- sub(),subtract()
* mul(),multiply()
/ truediv(),div(),divide()
// floordiv()
% mod()
** pow()
行索引不对应的情况

行、列索引不对应的情况

 
            (2)Series与DataFrame之间的运算 
                【重要】
                     · 使用Python操作符:以行为单位操作(参数必须是行),对所有行都有效。(类似于numpy中二维数组与一维数组的运算,但可能出现NaN)
    老李加不上去。
    老李:三营长,你他娘的意大利炮呢!!!
 
                     · 使用pandas操作函数:
                        axis = 0:以列为单位操作(参数必须是列),对所有列都有效。index
                        axis = 1:以行为单位操作(参数必须是行),对所有行都有效。columns
    
 
 
 
=======================
练习:
    1.假设ddd是其中考试成绩,ddd2是期末考试成绩,请自由创建ddd2,并将其与ddd相加,求其中期末平均成绩。
 

 
    2.假设张三其中考试数学被发现左闭,要记为0分,如何实现?
 

    3.李四因为举报张三作弊立功,其中考试所有科目加100分,如何实现?
 

    4.后来老师发现有一道题出错了,为了安抚学生情绪,给每位学生每个科目都加10分,如何实现?加在其末考试的成绩上。
 

=======================

5 pandas模块,DataFrame类的更多相关文章

  1. 吴裕雄--天生自然python学习笔记:pandas模块DataFrame 数据的修改及排序

    import pandas as pd datas = [[65,92,78,83,70], [90,72,76,93,56], [81,85,91,89,77], [79,53,47,94,80]] ...

  2. pandas模块(数据分析)------dataframe

    DataFrame DataFrame是一个表格型的数据结构,含有一组有序的列,是一个二维结构. DataFrame可以被看做是由Series组成的字典,并且共用一个索引. 一.生成方式 import ...

  3. 4 pandas模块,Series类

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

  4. python重要的第三方库pandas模块常用函数解析之DataFrame

    pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...

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

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

  6. pandas模块的数据操作

    数据操作 数据操作最重要的一步也是第一步就是收集数据,而收集数据的方式有很多种,第一种就是我们已经将数据下载到了本地,在本地通过文件进行访问,第二种就是需要到网站的API处获取数据或者网页上爬取数据, ...

  7. python之pandas模块

    一.pandas模块是基于Numpy模块的,pandas的主要数据结构是Series和DadaFrame,下面引入这样的约定: from pandas import Series,DataFrame ...

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

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

  9. Pandas模块

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

  10. pandas模块实现小爬虫功能-转载

    pandas模块实现小爬虫功能 安装 pip3 install pandas 爬虫代码 import pandas as pd df = pd.read_html("http://www.a ...

随机推荐

  1. ASP.NET Web Projects

    https://msdn.microsoft.com/en-us/library/ywdtth2f.aspx The topics in this section describe how to cr ...

  2. Codeforces--597A--Divisibility(数学)

     DivisibilityCrawling in process... Crawling failed Time Limit:1000MS     Memory Limit:262144KB    ...

  3. nginx初相识

    在本机上下载了一个nginx,版本为1.14.0. 安装: 对于安装比较简单,下载后解压到指定目录,目录结构如下 启动: 最简单的直接双击nginx.exe,有黑窗一闪而过,不要怀疑,看一下logs的 ...

  4. 苹果树(线段树+Dfs序)

    1228 苹果树  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond   题目描述 Description 在卡卡的房子外面,有一棵苹果树.每年的春天,树上总 ...

  5. [Swift通天遁地]二、表格表单-(13)实时调整表单元素的显示和隐藏

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  6. [Swift通天遁地]八、媒体与动画-(4)给相机添加CoreImage滤镜效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. 安科 OJ 1054 排队买票 (递归,排列组合)

    时间限制:1 s 空间限制:128 M 题目描述 有M个小孩到公园玩,门票是1元.其中N个小孩带的钱为1元,K个小孩带的钱为2元.售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱 ...

  8. Java一维数组二维数组详解API

    所谓数组,是有序的元素序列. 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数字编号称为下标 ...

  9. Android内存管理(6)onTrimMemory,onLowMemory,MemoryInfo()

    转自: http://www.cnblogs.com/sudawei/p/3527145.html 参考: Android Application生命周期学习 Android中如何查看内存(上) An ...

  10. sublime text3配置插件

    之前一直习惯用记事本写代码,懒得用IDE,虽然知道用 IDE效率高一些,不过觉得还是用记事本纯手写代码,比较容易记忆.直到昨天写代码遇到了点问题,截图给师兄看,师兄就问我是不是用记事本写代码,为什么不 ...