读书笔记6pandas简单使用
一、序列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]
| 序号 | 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
| 序号 | 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简单使用的更多相关文章
- 『TensorFlow』读书笔记_简单卷积神经网络
如果你可视化CNN的各层级结构,你会发现里面的每一层神经元的激活态都对应了一种特定的信息,越是底层的,就越接近画面的纹理信息,如同物品的材质. 越是上层的,就越接近实际内容(能说出来是个什么东西的那些 ...
- Web开发基础(读书笔记)
读书笔记:简单+基础 HTML(hyper Text Markup Language,超文本标记语言) URL(Uniform Resource Locator,统一资源定位器)构成3部分:协议/主机 ...
- how tomcat works 读书笔记(二)----------一个简单的servlet容器
app1 (建议读者在看本章之前,先看how tomcat works 读书笔记(一)----------一个简单的web服务器 http://blog.csdn.net/dlf123321/arti ...
- Redis设计与实现读书笔记——简单动态字符串
前言 项目里用到了redis数据结构,不想只是简单的调用api,这里对我的读书笔记做一下记录.原文地址: http://www.redisbook.com/en/latest/internal-dat ...
- [redis读书笔记] 第一部分 数据结构与对象 简单动态字符串
本读书笔记主要来自于<<redis设计与实现>> -- 黄键宏(huangz) redis主要设计了字符串,链表,字典,跳跃表,整数集合,压缩列表来做为基本的数据结构,实现键值 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- 《C#高级编程》读书笔记
<C#高级编程>读书笔记 C#类型的取值范围 名称 CTS类型 说明 范围 sbyte System.SByte 8位有符号的整数 -128~127(−27−27~27−127−1) sh ...
随机推荐
- Cognos Report Studio 链接查询需要注意的地方2
在Report Studio里面用SQL设计报表,查询2,查询3 要链接一般按条件 a1=b1 在选择链接方式需要注意的地方: 默认链接 外部链接 需要设置打开FM,打开报表设计引用的数据包(FM- ...
- USACO humble
用set构造,优先队列和堆也能够 /* ID:kevin_s1 PROG:humble LANG:C++ */ #include <iostream> #include <cstdi ...
- 每日一句英语:怎样回答美国人的How is it going问候语?
和中国人"吃了吗"是一个性质,本质上仅仅是个话题的起始点,而不是真的想知道你吃了没有. 美国人打招呼有几种方式: 不太熟的人:How are you? 一 般说 pretty go ...
- linux kernel下输入输出console怎样实现
近期工作在调试usb虚拟串口,让其作为kernel启动的调试串口,以及user空间的输入输出控制台. 利用这个机会,学习下printk怎样选择往哪个console输出以及user空间下控制台怎样选择. ...
- java之八大排序
的关系: 1.直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数 也是排好顺序的.如此反 ...
- JavaSE入门学习17:Java面向对象之package(包)
一Java包(package) 为了更好地组织类,Java提供了包机制,用于差别类名的命名空间. 包的作用: A把功能类似或相关的类或接口组织在 ...
- 手动脱NsPacK壳实战
作者:Fly2015 这里脱壳的程序是吾爱破解培训的作业2,相较于作业1略微要强一点,可是仅仅要掌握了脱壳的ESP定律,脱这个Nspack壳并不难.只是还是蛮有意思的. 1.使用查壳软件对加壳的程序进 ...
- dyld: Library not loaded: @rpath/XCTest.framework/XCTest Referenced from: /private/var/mobile/Conta
dyld: Library not loaded: @rpath/XCTest.framework/XCTest Referenced from: /private/var/mobile/Cont ...
- 虚拟机安装的Winserver 2008 R2系统,宿主机无法ping通主机
新安装的虚拟机,在虚拟机中安装了Winserver2008 R2系统,网络适配器已经设置为桥接模式(自动) 刚开始的几天很正常,但是过了几天后,发现连接不了了,后来才发现是因为网络问题. 解决方案:修 ...
- ORACLE检查死锁
一.数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错.二.死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更 ...