1. pandaspython为数据分析建造的可靠工具,很多地方和R语言有想通之处。数据分析并不是工具越高深越好,excel,R,python都是针对不同情况的不同工具,各有各的优缺点,
    就像你要搭一个架子,或者做一个工艺品,有的小锤子比较合适,有的就得用大斧子了。
    excel其实是数据分析的强力武器。对于小数据量的情况下,excel有其先天的优势。而PythonR更像一个高性能的数据处理工具。
    然而仅仅会使用各种厉害工具,数据落不了地是啥也没用的。落地,和业务贴合,永远是数据最终走向。近期转到研发部门,和业务贴合的机会少了,对这方面更有很多深刻感触。
  2.  
  3. 下面这几点可能更像从excel角度去看python.
    1.panda index 更像横坐标 x,同时也可以把它当做一个list ,可以像数组一样赋值,取数。
    2.两个跟属性判断相关的语句。in 是判断某个columns 或者 index中是否存在某个字段。 is 是判断数据格式类型。
    3.另外基本功能,reindex 调整 index的工具函数。
    基本格式:
  1. obj.reindex(['a','b','c','d','e'],fill_value = 0.0)
  2.  
  3. 功能:可以在横坐标和纵坐标上进行修改
  1. frame = DataFrame(np.arange(9).reshape(3,3),index=['a','b','c'],columns=['Ohio','Texas','California'])
    frame.reindex(['a','b','c','d'])
    frame.reindex(columns=['Ohio','Texas','California','NewYork'])
  1. 4.取数据子矩阵 frame.ix 函数,同时还可以有reindex的功能。
  1. frame.ix(['a','b','d'],states)
  1. data.ix[['Colorado','Utah'],['three','four']]
  1. 5.现在已经隐约可以感觉到 python的两个子模块运算类似于线性代数了
    所以 两个dataframe的结果十分像线性代数的结果。
    df1+df2
  1. df1.add(df2,fill_value=0)
    df1.mul(df2,fill_value=0)
    df1.div(df2,fill_value=0)
    df1.sub(df2,fill_value=0)
  1. 详细数据如下
    ========================================================================================
  2.  
  3. '''panda's index objects are responsible for holding the axis labels,like series'''
    import pandas as pd
    obj = Series(range(3),index=['a','b','c'])
    index = obj.index
    index
    index[1:]
    '''index = immutable'''
    index[1]='d'
    '''so the index can be valued by function'''
    index = pd.Index(np.arange(3))
    obj2 = Series([1.5,-2.5,0],index=index)
    obj2
  4.  
  5. ''' evaluate the attribute of index 判断属性用Is,判断存不存在用in'''
    obj2.index is index
  6.  
  7. 'Ohio' in frame3.columns
  8.  
  9. '2002' in obj2.index
  10.  
  11. '''Essential functionality'''
    '''reindexing'''
    obj=Series([4.5,7.2,-5.3,3.6],index=['d','b','a','c'])
    obj2=obj.reindex(['a','b','c','d','e'])
    obj2
    '''fill the missing data'''
    obj.reindex(['a','b','c','d','e'],fill_value = 0.0)
    '''ordering fill the missing data'''
    obj3=Series(['blue','green','black'],index=[0,2,4])
    obj3.reindex(np.arange(5),method='ffill')
  12.  
  13. '''reindex can be alter row,column and both in data frame'''
    frame = DataFrame(np.arange(9).reshape(3,3),index=['a','b','c'],columns=['Ohio','Texas','California'])
    frame.reindex(['a','b','c','d'])
    frame.reindex(columns=['Ohio','Texas','California','NewYork'])
  14.  
  15. months = ['APR','MAY','JUN','JUL','AUG']
    frame.reindex(columns=months)
    label=['a','b','c','d','e']
    states=['Ohio','Texas','California','NewYork']
    '''reindex 仅对x-axis有效'''
    frame.reindex(label,method='ffill')
    '''取子矩阵'''
    frame.ix(['a','b','d'],states)
  16.  
  17. '''dropping entries from axis'''
    obj = Series(np.arange(5.),index=['a','b','c','d','e'])
    new_obj = obj.drop('c')
    new_obj
  18.  
  19. '''drop from data frame'''
    data=DataFrame(np.arange(16).reshape(4,4),index=['Ohio','Colorado','Utah','NewYork'],columns=['one','two','three','four'])
    '''drop from index'''
    data.drop(['Colorado','Utah'])
    '''drop from column'''
    data.drop('two',axis=1)
  20.  
  21. '''index,selection,filtering'''
    obj=Series(np.arange(4.),index=['a','b','c','d'])
    '''index可以像数组一样,通过数字定位,index 定位,取一个数,一串数'''
    obj['b']
    obj[1]
    obj[1:2]
    obj[['a','c','d']]
    obj[[1,3]]
    obj[obj < 2]
  22.  
  23. obj['b':'c']=5
  24.  
  25. data=DataFrame(np.arange(16).reshape(4,4),index=['Ohio','Colorado','Utah','New York'],columns=['one','two','three','four'])
    '''follow by columns,但只是单维度的'''
    data['two']
    data[['three','one']]
    data.ix['Ohio']
    data[data['three']>5]
    data[:2]
  26.  
  27. '''data小于5的赋值0'''
    data[data<5]=0
  28.  
  29. '''按照位置选择值'''
    data.ix['Colorado','two']
    data.ix['Colorado',['two','three']]
    data.ix[['Colorado','Utah'],['three','four']]
    data.ix[2]
    data.ix[:'Utah','two']
    data.ix[:2,'two']
    data.ix[data.three>5,:3]
  30.  
  31. '''reindex'''
    data.ix[['Colorado','Utah'],[3,0,1]]
  32.  
  33. '''arithmetic and data alignment'''
    s1=Series([7.3,-2.5,3.4,1.5],index=['a','c','d','e'])
    s2=Series([-2.1,3.6,-1.5,4,3.1],index=['a','c','e','f','g'])
    '''not overlap return NA'''
    s1+s2
    '''dataframe'''
    df1=DataFrame(np.arange(9.).reshape(3,3),columns=list('bcd'),index=['Ohio','Texas','Colorado'])
    df2=DataFrame(np.arange(12.).reshape(4,3),columns=list('bde'),index=['Utah','Ohio','Texas','Oregon'])
  34.  
  35. df1+df2
    '''只要有一个为空,就是空'''
    df1.add(df2,fill_value=0)
    '''只要有一个有数,另外一个就设为0'''
    '''reindex'''
    df1.reindex(columns=df2.columns,fill_value=0)
  36.  
  37. df1 = DataFrame(np.arange(12.).reshape(3,4),columns=list('abcd'))
    df2 = DataFrame(np.arange(20.).reshape(4,5),columns=list('abcde'))
    df1.add(df2,fill_value=0)
    df1.mul(df2,fill_value=0)
    df1.div(df2,fill_value=0)
    df1.sub(df2,fill_value=0)

panda2的更多相关文章

  1. 访问图片可以使用闭包map

    1 imageView.animationImages = [ UIImage(named:"panda1"), UIImage(named:"panda2") ...

  2. javascript构造函数以及原型对象的理解

    以下是一个构造函数的例子 如果是实例方法,不同的实例化,它们引用的地址是不一样的,是唯一的. //定义一个构造函数 function People(name,age){ this.name=name; ...

  3. 数据结构实习-迷宫(基于Qt实现)

    预览效果: Maze.pro文件 #------------------------------------------------- # # Project created by QtCreator ...

  4. 记Angular与Django REST框架的一次合作(2):前端组件化——Angular

    注:这是这个系列的第二部分,主要集中在Angular的使用方面.之前使用过AngularJS(Angular 1.x),混在Django的模板中使用,这些页面一般完全是结果展示页.在有Django表单 ...

随机推荐

  1. NodeJS开发环境搭建

    原创作者: zero20121222 NodeJS开发环境搭建 1.安装NodeJS 1.编译环境 源代码编译器,通常 Unix/Linux平台都自带了C++的编译器(GCC/G++).如果没有,请通 ...

  2. JVM堆内存相关的启动参数:年轻代、老年代和永久代的内存分配

    如果想观察JVM进程占用的堆内存,可以通过命令工具jmap或者可视化工具jvisualvm.exe.JVM这些启动参数都拥有默认值,如果想了解JVM的内存分配策略,最好手动设置这些启动参数.再通过JD ...

  3. 手把手教你使用 GitBook

    一.简介 GitBook 是一个支持用 MarkDown 编写文档的软件,支持输出 HTML.PDF.eBook 格式文档.作为开发者我们一般会用它来写一些技术和接口文档. GitBook 官网:ht ...

  4. IBM Java 7 新特性和在 WAS 8.5 中的配置【转载】

    IBM Java 7新特性以及在WAS V8.5 中的安装与版本切换 简介: 本文介绍了 IBM Java 7 的基本新特性以及 IBM 特有的新特性,并详细的介绍和分析了 JVM 所采用的新的垃圾回 ...

  5. django migrate生成表结构DateTimeField 类型加了6位精度别的框架无法调用的问题?

    背景介绍 django migrate 生成表结构时,对于DateTimeField 类型的处理是加了6位精度的,只用django处理是没有任何问题的,但是如何别的框架来读取这种字段会读取不到该字段值 ...

  6. 工作笔记——web字体格式转换

    转载自:http://blog.csdn.net/xiaolongtotop/article/details/8316554 目前,文字信息仍是网站最主要的内容,随着CSS3技术的不断成熟,Web字体 ...

  7. MongoDB操作库/表

    假设你已经安装好了MongoDB 不使用权限启动 mongod --fork --bind_ip 0.0.0.0 --dbpath=/mydata/mongo/data --logpath=/myda ...

  8. google GFS

    我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的.可伸缩的分布式文件系统.GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服 ...

  9. session与cookie的详解

    在PHP面试中 经常碰到请阐述session与cookie的区别与联系,以及如何修改两者的有效时间. 大家都知道,session是存储在服务器端的,cookie是存储在客户端的,session依赖于c ...

  10. c++ 使用WinHTTP实现文件下载功能

    因为要项目中要想要实现一个软件自动更新的功能,之前是使用socket直接下载.但切换下载源的时候很麻烦.所以换用http方式. 网上找了很多资料,基本上就是下面几种: 1.curllib //功能强大 ...