pandas是python为数据分析建造的可靠工具,很多地方和R语言有想通之处。数据分析并不是工具越高深越好,excel,R,python都是针对不同情况的不同工具,各有各的优缺点,
就像你要搭一个架子,或者做一个工艺品,有的小锤子比较合适,有的就得用大斧子了。
excel其实是数据分析的强力武器。对于小数据量的情况下,excel有其先天的优势。而Python和R更像一个高性能的数据处理工具。
然而仅仅会使用各种厉害工具,数据落不了地是啥也没用的。落地,和业务贴合,永远是数据最终走向。近期转到研发部门,和业务贴合的机会少了,对这方面更有很多深刻感触。 下面这几点可能更像从excel角度去看python.
1.panda 的 index 更像横坐标 x,同时也可以把它当做一个list ,可以像数组一样赋值,取数。
2.两个跟属性判断相关的语句。in 是判断某个columns 或者 index中是否存在某个字段。 is 是判断数据格式类型。
3.另外基本功能,reindex 调整 index的工具函数。
基本格式:
obj.reindex(['a','b','c','d','e'],fill_value = 0.0)

功能:可以在横坐标和纵坐标上进行修改
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'])
4.取数据子矩阵 frame.ix 函数,同时还可以有reindex的功能。
frame.ix(['a','b','d'],states)
data.ix[['Colorado','Utah'],['three','four']]
5.现在已经隐约可以感觉到 python的两个子模块运算类似于线性代数了
所以 两个dataframe的结果十分像线性代数的结果。
df1+df2
df1.add(df2,fill_value=0)
df1.mul(df2,fill_value=0)
df1.div(df2,fill_value=0)
df1.sub(df2,fill_value=0)
详细数据如下
======================================================================================== '''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 ''' evaluate the attribute of index 判断属性用Is,判断存不存在用in'''
obj2.index is index 'Ohio' in frame3.columns '2002' in obj2.index '''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') '''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']) 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) '''dropping entries from axis'''
obj = Series(np.arange(5.),index=['a','b','c','d','e'])
new_obj = obj.drop('c')
new_obj '''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) '''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] obj['b':'c']=5 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] '''把data小于5的赋值0'''
data[data<5]=0 '''按照位置选择值'''
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] '''reindex'''
data.ix[['Colorado','Utah'],[3,0,1]] '''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']) df1+df2
'''只要有一个为空,就是空'''
df1.add(df2,fill_value=0)
'''只要有一个有数,另外一个就设为0'''
'''reindex'''
df1.reindex(columns=df2.columns,fill_value=0) 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. 使用selenium实现简单网络爬虫抓取MM图片

    撸主听说有个网站叫他趣,里面有个社区,其中有一项叫他趣girl,撸主点进去看了下,还真不错啊,图文并茂,宅男们自己去看看就知道啦~ 接下来当然就是爬取这些妹子的图片啦,不仅仅是图片,撸主发现里面的对话 ...

  2. 005-hive概述,计算原理及模型

    计算原理及模型 优化的根本思想: 尽早尽量过滤数据,减少每个阶段的数据量 减少job数 解决数据倾斜问题 Hive概述 名称       hive系统架构 metastore derbymysql   ...

  3. C# DataTable Column DataType 对应 数据库

      public DataTable MakeDataTable(){ DataTable myTable; DataRow myNewRow; // Create a new DataTable. ...

  4. [C语言]小记q = (++j) + (++j) + (++j)的值

    根据不同的编译器,生产的代码不一样,导致的结果也会不一样. 代码如下: #include <stdio.h> void main() { ; int q; q =(++j)+(++j)+( ...

  5. [Windows Powershell]-学习笔记(6)

    Powershell环境变量 传统的控制台一般没有象Powershell这么高级的变量系统.它们都是依赖于机器本身的环境变量,进行操作 .环境变量对于powershell显得很重要,因为它涵盖了许多操 ...

  6. DevStore分享:详析消费者十大心理学

    做生意,其实就是一个恋爱的过程,让用户找到你.了解你,爱上你.而这个过程中的关键点就是用户.只要与用户心理相关的,那么就会影响到他们的购买决策.而作为卖方的你,就应该了解消费者心里面在想些什么. 第一 ...

  7. 【android】开发笔记系列UI篇

    弹出View添加阴影效果 系统自带就有,在android studio上直接写入背景颜色 android:background="@android:drawable/dialog_holo_ ...

  8. tensorflow中使用tf.variable_scope和tf.get_variable的ValueError

    ValueError: Variable conv1/weights1 already exists, disallowed. Did you mean to set reuse=True in Va ...

  9. ARKit 研究笔记一

    软件需求:Xcode9.x .blender 硬件需求:iphone 6s + 系统:iOS 11 + 技能储备: ARKit .SceneKit(苹果提供的3d游戏库) 或 SpriteKit(苹果 ...

  10. Could not connect to '192.168.89.144' (port 22)

    xshell连接linux主机时,会出现错误:Could not connect to '192.168.89.144' (port 22): Connection failed. 但是这时能ping ...