1 重新生成索引 如果某个索引值不存在就引入缺失值

 from pandas import Series,DataFrame
import pandas as pd
import numpy as np
obj=Series([4.5,7.2,-5.3,3.6],index=['d','b','a','c'])
obj #重新生成索引
obj2=obj.reindex(['a','b','c','d','e'])
obj2

  a使用method的ffill可以实现前向值填充,效果如下

 #前向填充
obj3=Series(['blue','purple','yellow'],index=[,,])
obj3.reindex(range(),method='ffill')

  b:对于dataframe使用reindex可以同时修改行列索引,如果仅传入一个序列那么如下

 frame=DataFrame(np.arange().reshape((,)),index=['a','c','d'],
columns=['ohio','Texas','california'])
frame

 frame2=frame.reindex(['a','b','c','d'])
frame2

  c:使用colunms重新索引列

 states=['Texax','Utah','california']
frame.reindex(columns=states)

  d:同时插入行列,但是插值只能按行应用

 #同时对行 列进行重新索引 而插值只能引用到行
frame.reindex(index=['a','b','c','d'],method='ffill',
columns=states)

reindex的参数说明如下:

2 丢弃制定轴上的项

  a:drop方法返回一个指定轴上删除了指定值的新对象,删除列c

 #丢弃指定轴的项
obj=Series(np.arange(.),index=['a','b','c','d','e'])
new_obj=obj.drop('c')
new_obj

  b:删除两个 b c

obj.drop(['d','c'])

  c:对于dataframe可以删除任意轴上的索引

 #对于DataFrame可以删除任意轴的索引
data = DataFrame(np.arange().reshape((,)),
index=['ohio','colorado','utah','new york'],
columns=['one','two','three','four'])
#删除两个
data.drop(['colorado','ohio'])

3 索引,选取和过滤

  a:Series中的索引类似与Numpy,但是不只是整数,索引字符

 obj=Series(np.arange(.),index=['a','b','c','d'])
obj['b']#1.0

  b:按照整数,范围

 obj[]#1.0
obj[:]#

  c:利用标签的切片运算和普通depython切片不同,其包含末端

 obj['b':'c']#b c  

  d:那么对dataframe进行索引就是获取一个或者多个列勒

 data=DataFrame(np.arange().reshape(,),
index=['ohio','colorado','mike','jason'],
columns=['one','two','three','four'])
data

  e:选择一列

data['two']#输出第二列+行号 也就是索引

  f:选择多列

 data[['three','one']]

  g:选取行标签前两行

data[:]#选取的是前面两行

  h:选取第三列大于5的值

data[data['three']>]

  i:为了能在dataframe的行上进行标签索引引入字段ix

data.ix['colorado',['two','three']]

  j:选取第4 1 2列 而且行为colorado jason

data.ix[['colorado','jason'],[,,]]

  k:输出行mike

data.ix[]

DataFrame索引总结

4 算数运算和数据对齐

  a:Series的加法

 s1=Series([7.3,-2.5,3.4,1.5],index=['a','c','d','e'])
s2=Series([-2.1,3.6,-1.5,,3.1],index=['a','c','e','f','g'])
3 s1+s2

  b:对于dataframe,对齐会同时发生在行 列中

df1=DataFrame(np.arange(.).reshape((,)),columns=list('bcd'),
index=['utah','ohio','colorado'])
df2=DataFrame(np.arange(.).reshape((,)),columns=list('bde'),
index=['utah','ohio','colorado','oragen'])

df1+df2

------>索引和列都为其并集

  c:在算术方法中填充值。比如说两个dataframe相加,其中一个不在的时候填充为0

 #算术中进行填充
df1=DataFrame(np.arange(.).reshape((,)),columns=list('abcd'))
df2=DataFrame(np.arange(.).reshape((,)),columns=list('abcde'))
df1+df2

#使用df1的add方法 传入df2以及一个fill_value参数
df1.add(df2,fill_value=)

5 DataFrame和Series之间的运算----->广播,也就是如果第一个数值-1,那么这个列都会减1

  a:看一看一个二维数组和一行之间的差

arr=np.arange(.).reshape((,))

arr[]

arr-arr[]

  b:frame和series的运算

frame=DataFrame(np.arange(.).reshape((,)),columns=list('bde'),
index=['utah','ohio','texas','orogen'])
series=frame.ix[]

frame-series

好了,加油骚年!!!!

利用python数据分析panda学习笔记之基本功能的更多相关文章

  1. 利用python数据分析panda学习笔记之Series

    1 Series a:类似一维数组的对象,每一个数据与之相关的数据标签组成 b:生成的左边为索引,不指定则默认从0开始. from pandas import Series,DataFrame imp ...

  2. 利用python数据分析panda学习笔记之DataFrame

    2 DataFrame a:通过传入一个等长的列表构成DataFrame 自动加上索引 data={'state':['ohio','ohio','ohio','Nevada','Nevada'], ...

  3. python数据分析入门学习笔记

    学习利用python进行数据分析的笔记&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分 ...

  4. python数据分析入门学习笔记儿

    学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据 ...

  5. Python数据分析:Numpy学习笔记

    Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.ze ...

  6. $《利用Python进行数据分析》学习笔记系列——IPython

    本文主要介绍IPython这样一个交互工具的基本用法. 1. 简介 IPython是<利用Python进行数据分析>一书中主要用到的Python开发环境,简单来说是对原生python交互环 ...

  7. Requests:Python HTTP Module学习笔记(一)(转)

    Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...

  8. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

  9. Python Built-in Function 学习笔记

    Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...

随机推荐

  1. vs 编译错误 The name 'InitializeComponent' does not exist in the current context in WPF application

    1:文件命名空间的问题 xaml文件和model.cs文件的命名空间 2:csproj 那么它究竟是给谁用的呢?那是给开发工具用的,例如我们在熟悉不过的Visual Studio,以及大家可以没有接触 ...

  2. bash的几个特殊参数和位置参量

    http://blog.csdn.net/jiankun_wang/article/details/4336285 一.$*和$@ 首先介绍两个极其相似.很难区分的特殊参数$*和$@,先看如下输出: ...

  3. 内核顶层Makefile相关3

    http://www.groad.net/bbs/simple/?f104.html 伪目标 .PHONY是一个特殊工作目标(special target),它用来指定一个假想的工作目标,也就是说它后 ...

  4. 自己动手写CPU之第七阶段(5)——流水线暂停机制的设计与实现

    将陆续上传本人写的新书<自己动手写CPU>,今天是第28篇.我尽量每周四篇 China-pub的预售地址例如以下(有文件夹.内容简单介绍.前言): http://product.china ...

  5. python--网络编程--主机命令执行

    import os os.system()#执行系统命令 #只能执行命令不能返回值 import subprocess # 能执行系统命令 res=subprocess.Popen('dir',she ...

  6. Cena使用

    打开cena,在工具-选项中,修改G++和GCC的编译命令.格式:[g++目录]g++.exe %s.cpp -o %s.exe [编译选项]例如以下命令使用刚安装的mingw4.8.1 g++编译, ...

  7. arm处理器的历史及现状

    1 arm处理器的发展历史 arm1 arm2 arm3 arm6 arm7 arm9 arm11 arm cortex 2 arm处理器现状 arm cortex A a即application,即 ...

  8. Java Virtual Machine (JVM) objects 虚拟机实例的产生 退出 两种线程

    Apache Spark is built around a distributed collection of immutable Java Virtual Machine (JVM) object ...

  9. eclipse的maven、Scala环境搭建

    最近重新搭建了一下maven+Scala的环境,发现很多东西都不记得了,于是重新记录一遍. 嫌搭建麻烦的话也可以直接下载Scala官方做好的环境http://scala-ide.org/downloa ...

  10. R in Action(0) 开篇

    这几年数据挖掘的火热,也越来越多的人把R作为数据挖掘的一个辅助工具,据国际性组织kkguter统计有60%的人在挖掘过程中用到R工具,可见这个工具是多么的流行,对于数据统计.筛选以及画图绝对是神器.尽 ...