读书笔记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 ...
随机推荐
- Configuring Time in Windows 7 and Win 200
http://www.windowsnetworking.com/articles-tutorials/windows-7/Configuring-Time-Windows-7-Win-2008-R2 ...
- Kettle资源库采用SQLserver数据库需要注意的点
Kettle开源ETL工具有着自己的元数据存储方式,可以分为两种 1:File 2:DB 文件存储我这里就不多说了,下面说一下在用SQLserver2008 R2作为资源库在创建的过程中遇到的问题 K ...
- [CSS] Pseduo
#self aside li{ list-style-type: none;padding:5px;border-bottom: 1px solid #ccc;} #self aside li:las ...
- 修改linux的文件时,如何快速找到要修改的内容并修改
修改linux系统下的文件时,如果文件内容很多,不容易找到需要修改的内容,下面详细介绍linux系统下如何快速修改文件. 工具/原料 linux系统 方法/步骤 在linux系统下,找到需 ...
- UVA 624 CD(DP + 01背包)
CD You have a long drive by car ahead. You have a tape recorder, but unfortunately your best music i ...
- Java从零开始学十(Arrays类对数组的常用方法)
一.Arrays类常用方法 二.简单例子 package com.pb.demo1; import java.util.Arrays; /* * Arrays工具类的中的几个常用方法 * 1.copy ...
- MySQL双主如何解决主键冲突问题
搭建了个双主,突然想到如果表设置了自增主键的话,当业务同时向双库中插入一条数据,这时候情况是什么样子的呢? 比如:主库A和主库B上的一个表数据为: 12 'ninhao' .当业务同时写入数据后主库A ...
- 〖Linux〗Qt+gsoap开发客户端程序,服务端地址设定的字符串转换处理
之所以写出来,是由于经常因为这个问题屡屡丢面子.. 一般情况下,QString转换成(char*),我们一般直接使用: char *str = qstr->text().toLatin1().d ...
- ORACLE检查死锁
一.数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错.二.死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更 ...
- java中的 public protected friendly private
1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直 ...