一、序列Series,很像numpy中的array数组,可以由列表、元组、字典、numpy中的array来初始化

>>> from pandas import Series
>>> s = Series([0.1, 1.2, 2.3, 3.4, 4.5])
>>> s
0.1
1.2
2.3
3.4
4.5
dtype: float64

2、序列也可以由标签组成,默认是由数字表示。

>>> s = Series([0.1, 1.2, 2.3, 3.4, 4.5], index = [’a’,’b’,’c’,’d’,’e’])
>>> s
a 0.1
b 1.2
c 2.3
d 3.4
e 4.5
dtype: float64

索引的话可以由数字、标签、真值表、切片

from pandas import Series
s = Series([0.1, 1.2, 2.3, 3.4, 4.5], index = ['a','b','c','d','e'])
s[]
Out[]:
1.2
from pandas import Series
s = Series([0.1, 1.2, 2.3, 3.4, 4.5], index = ['a','b','c','d','e'])
print s[],'\n'
print s[:],'\n'
print s[s>],'\n'
print s[[,,]]
1.2 b 1.2
c 2.3
d 3.4
dtype: float64 d 3.4
e 4.5
dtype: float64 b 1.2
c 2.3
d 3.4
dtype: float64

二、序列的常用函数

1、head and tail来显示头部5行或末尾5行数据,也可以通过传递参数来修改显示的行数

from pandas import Series
s = Series([0.1, 1.2, 2.3, 3.4, 4.5], index = ['a','b','c','d','e'])
print s.head(),'\n'
print s.head()
a 0.1
b 1.2
c 2.3
d 3.4
e 4.5
dtype: float64 a 0.1
b 1.2
dtype: float64

2、isnull and notnull返回等长的序列,

3、describe返回序列的一些统计特性

from pandas import Series
import numpy as np
s=Series(np.arange(1.0,))
s.describe()
Out[]:
count 9.000000
mean 5.000000
std 2.738613
min 1.000000
% 3.000000
% 5.000000
% 7.000000
max 9.000000
dtype: float64

4、unique and nunique,返回不重复的数据集或者重复的数据集

5、drop(labels) 删除制定标签的数据,dropna()是删除NaN数据

6、append(series) 添加数据

from pandas import Series
import numpy as np
s=Series(np.arange(1.0,))
s2=Series([,,,])
print s.append(s2)

1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
22.0
33.0
44.0
55.0
dtype: float64

7、replace(series,values) 将series数据集中的数据替换成values数据集

注意:这个替换是将替换后的数据返回,而不是在原来的数据集上做替换

from pandas import Series
import numpy as np
s=Series(np.arange(1.0,))
s2=Series([,,,])
s3=s.append(s2)
print s3.replace([,,],[,,])
s3

1.0
22.0
3.0
4.0
55.0
6.0
7.0
99.0
9.0
22.0
33.0
44.0
55.0
dtype: float64
Out[]:
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
22.0
33.0
44.0
55.0
dtype: float64

8、update(series)用series来更新,只更新匹配上标签的数据

注意:是在原来数据集上做更新

>>> s1 = Series(arange(1.0,4.0),index=[’a’,’b’,’c’])
>>> s1
a
b
c
dtype: float64
>>> s2 = Series(-1.0 * arange(1.0,4.0),index=[’c’,’d’,’e’])
>>> s1.update(s2)
>>> s1
a
b
c -
dtype: float64

9、数据框架,DataFrame,相当于array上的二维数组,区别于array数组的地方时它可以是不同数据类型的数据组合在一起

 
from pandas import DataFrame
a=np.array([[,],[,]]);
df=DataFrame(a)
df
Out[]:

>>> df = DataFrame(array([[1,2],[3,4]]),columns=[’a’,’b’])
>>> df
a b
0 1 2
1 3 4

也可以指定行标签和列标签

>>> df = DataFrame(array([[,],[,]]), columns=[’dogs’,’cats’], index=[’Alice’,’Bob’])
>>> df
dogs cats
Alice
Bob

10、也可以通过字典来初始化DataFrame

11、也可以指定列标签

>>> df = DataFrame(array([[1,2],[3,4]]), columns=[’dogs’,’cats’], index=[’Alice’,’Bob’])
>>> df
dogs cats
Alice 1 2
Bob 3 4

二、操作数据框架,工作目录中有一个excel文件可以用,我的是score.xlsx

1、读取数据

2、选择列可以直接是列名或者列明组成的列表

3、选择行可以是列标签或者列标签组成的列表,也可以是数字切片、真值表

from pandas import read_excel
score = read_excel('score.xlsx','Sheet1')
score[:1]
 
 
Out[20]:
  序号 english math chinese physics chemistry biology
0 1501 56 65 89 45 87 98
from pandas import read_excel
score = read_excel('score.xlsx','Sheet1')
t=score[(score.english>60) & (score.english<70)]
t
 
 
Out[22]:
  序号 english math chinese physics chemistry biology
2 1503 65 78 68 86 78 87
5 1506 64 67 82 76 78 73

4、选择行和列,需要使用ix[rowselector,colselector]

5、添加列跟字典用法差不多

>>> state_gdp_2012 = state_gdp[[’state’,’gdp_2012’]]
>>> state_gdp_2012.head()
state gdp_2012
Alabama
Alaska
Arizona
Arkansas
California
>>> state_gdp_2012[’gdp_growth_2012’] = state_gdp[’gdp_growth_2012’]
>>> state_gdp_2012.head()
state gdp_2012 gdp_growth_2012
Alabama 1.2
Alaska 1.1
Arizona 2.6
Arkansas 1.3

或者insert(location,column_name,series)

>>> state_gdp_2012 = state_gdp[[’state’,’gdp_2012’]]
>>> state_gdp_2012.insert(1,’gdp_growth_2012’,state_gdp[’gdp_growth_2012’])
>>> state_gdp_2012.head()
state gdp_growth_2012 gdp_2012
0 Alabama 1.2 157272
1 Alaska 1.1 44732
2 Arizona 2.6 230641
3 Arkansas 1.3 93892
4 California 3.5 1751002

6、修改数据

from pandas import read_excel
score = read_excel('score.xlsx','Sheet1')
print score[:]
score.ix[,'english']=
print score[:]
序号 english math chinese physics chemistry biology 序号 english math chinese physics chemistry biology

7、删除列,可以使用del关键字、pop(column) 方法、drop(list of columns,axis=1)

from pandas import Series
from pandas import read_excel
score = read_excel('score.xlsx','Sheet1')
scorecopy = score.copy()
print score[:]
score.pop('biology')
print score[:]

序号 english math chinese physics chemistry biology 序号 english math chinese physics chemistry

8、 dropna 删除含有Nan的行或者列,and drop_duplicates

9、fillna(value=value )将所有的Nan数据替换成所附的值

>>> df = DataFrame(array([[1, nan],[nan, 2]]))
>>> df.columns = [’one’,’two’]
>>> replacements = {’one’:-1, ’two’:-2}
>>> df.fillna(value=replacements)
one two
0 1 -2
1 -1 2

10、sort

>>> df = DataFrame(array([[1, 3],[1, 2],[3, 2],[2,1]]), columns=[’one’,’two’])
>>> df.sort(columns=’one’)
one two
0 1 3
1 1 2
3 2 1
2 3 2

>>> df.sort(columns=[’one’,’two’], ascending=[0,1])
one two
2 3 2
3 2 1
1 1 2
0 1 3

读书笔记6pandas简单使用的更多相关文章

  1. 『TensorFlow』读书笔记_简单卷积神经网络

    如果你可视化CNN的各层级结构,你会发现里面的每一层神经元的激活态都对应了一种特定的信息,越是底层的,就越接近画面的纹理信息,如同物品的材质. 越是上层的,就越接近实际内容(能说出来是个什么东西的那些 ...

  2. Web开发基础(读书笔记)

    读书笔记:简单+基础 HTML(hyper Text Markup Language,超文本标记语言) URL(Uniform Resource Locator,统一资源定位器)构成3部分:协议/主机 ...

  3. how tomcat works 读书笔记(二)----------一个简单的servlet容器

    app1 (建议读者在看本章之前,先看how tomcat works 读书笔记(一)----------一个简单的web服务器 http://blog.csdn.net/dlf123321/arti ...

  4. Redis设计与实现读书笔记——简单动态字符串

    前言 项目里用到了redis数据结构,不想只是简单的调用api,这里对我的读书笔记做一下记录.原文地址: http://www.redisbook.com/en/latest/internal-dat ...

  5. [redis读书笔记] 第一部分 数据结构与对象 简单动态字符串

    本读书笔记主要来自于<<redis设计与实现>> -- 黄键宏(huangz) redis主要设计了字符串,链表,字典,跳跃表,整数集合,压缩列表来做为基本的数据结构,实现键值 ...

  6. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  7. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  8. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  9. 《C#高级编程》读书笔记

    <C#高级编程>读书笔记 C#类型的取值范围 名称 CTS类型 说明 范围 sbyte System.SByte 8位有符号的整数 -128~127(−27−27~27−127−1) sh ...

随机推荐

  1. java oracle thin 和 oci 连接方式实现多数据库的故障切换

    java oracle thin 和 oci 连接方式实现多数据库的故障切换 一.thin方式 该种方式简便易用非经常见. 当中URL为 jdbc:oracle:thin:@(DESCRIPTION= ...

  2. 微信小程序中用户唯一ID的获取

    折腾到半夜,搞得挺兴奋,总结一下,免得忘了: 1.微信小程序直接获得的是一些简单信息,基本无用 2.用户唯一标识是openid,还有一个unionid是关联多个公众号之类情况下用,我不大关心 3.在g ...

  3. Discuz常见大问题-如何允许用户插入视频-如何自己在页面中插入视频

    从视频的下面分享中获取html代码 然后粘贴到你创建页面的指定位置(注意从优酷复制的视频宽度和高度可能比较小,你可以自己调整,或者占据100%) 最终的实现效果

  4. Java多线程之生产者消费者问题&lt;一&gt;:使用synchronized keyword解决生产者消费者问题

    今天看了一片博文,讲Java多线程之线程的协作,当中作者用程序实例说明了生产者和消费者问题,但我及其它读者发现程序多跑几次还是会出现死锁,百度搜了下大都数的样例也都存在bug,经过细致研究发现当中的问 ...

  5. STL - 容器 - vector简单应用

    VectorTest.cpp #include <vector> #include <iostream> #include <string> #include &l ...

  6. Internal Server Error: /favicon.ico 的解决方法

    项目大致环境:Linux + Apache + Django + Python 因为项目的需求重写了Python Logger.error 方法,每当记录错误日志的时候就发送一封邮件到指定的邮箱.项目 ...

  7. php json数据处理中文编码

    <?php function Notice(){ include './include/conn.php'; //数据库链接文件 $sql_notice = mysql_query('SELEC ...

  8. 修改MySQL数据文件的位置

    1:查看MySQL服务名称 2:管理员启动控制台 3:修改配置文件my.ini中数据文件的位置,[注]修改完成之后要把响应的数据文件从旧目录拷贝到新目录当中. 4:重新启动服务 5:登录数据库查看数据 ...

  9. jquery 保留两个小数的方法

    $()); 直接使用:toFixed(2)

  10. 对threading模块源码文件的解读(不全)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #对threading模块源码文件的解读(不全) import threading #类 #Thread() ...