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. npm命令,查看当前npm版本,更新nmp到最新版本,安装sails

    打开Node.js command prompt 1 查看npm当前版本 npm -v 2 更新npm至最新版本 npm install npm@latest -g 3 安装sails  npm in ...

  2. Spark2.0机器学习系列之7: MLPC(多层神经网络)

    Spark2.0 MLPC(多层神经网络分类器)算法概述 MultilayerPerceptronClassifier(MLPC)这是一个基于前馈神经网络的分类器,它是一种在输入层与输出层之间含有一层 ...

  3. Wilcoxon符号秩+秩和检验学习[转载]

    参数检验就是已知数据的精确分布模型,根据数据来求出模型中的未知参数:而非参数检验就是无需对样本总体分布(比如满足正态分布)做出假设. 1.符号检验 转自:https://baike.baidu.com ...

  4. ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (set维护)

    注意题目保证不会有一个矩形完全包括另一个矩形的情况 时间序上从后往前看,一个坐标\((x,y)\)加进来之前,如果已经有\(x_i<x\),则对结果的贡献为\(x-x_i\);若不存在\(x_i ...

  5. Hive的metastore

    hive --service metastore 默认端口是9083 <property> <name>hive.metastore.uris</name> < ...

  6. 简单地理解HTTPS 转

    原文地址:http://www.nowamagic.net/librarys/veda/detail/2394 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很多银行网站或电子邮箱等 ...

  7. quartz (二) Spring+Quartz实现定时任务的配置方法

    JobDetail  设置执行的任务 :CronTrigger   触发器:设置执行的时间规则      ;  Scheduler    // 调度器,将任务与执行时间关联 本文转自:http://w ...

  8. Visual C++的DLL

    动态链接库 (DLL) 是作为共享函数库的可执行文件. 动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数. 函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译.链接 ...

  9. WeX5基础

    最近在研究微信app开发,使用的是WeX5,在这里把一些基础知识点记录下来,忘记了可以翻阅查看. 一:开发后端服务 1.建立数据源:窗口--首选项--studio配置--数据源--增加--数据源类型选 ...

  10. HDFS只支持文件append操作, 而依赖HDFS的HBase如何完成数据的增删改查

    转:http://www.th7.cn/db/nosql/201510/135382.shtml 1. HDFS的文件append功能 早期版本的HDFS不支持任何的文件更新操作,一旦一个文件创建.写 ...