阅读之前假定你已经有了python内置的list和dict的基础.这里内容几乎是官方文档的翻译版本.

 
概览:
 
原来的文档是在一个地方,那边的代码看起来舒服些   https://www.yuque.com/u86460/dgt6mu/bx0m4g
一个要铭记在新的基本特点是 数据对齐
要点:索引,轴标签,生成实例时传入的数据类型
 

#*生成:pd.Series(data,index)        data是传入的数据,index是第一列的名称(即标签)      (其他不常用的参数忽略)
#ndarray (data的类型)
>>> pd.Series(np.random.randn(5))
0 1.617186
1 0.326732
2 -0.230443
3 -0.137932
4 0.474872
dtype: float64
>>> pd.Series(np.random.randn(5),index=['a', 'b', 'c', 'd', 'e'])
a 0.048464
b 1.413755
c 0.036489
d 0.533946
e 0.286384
dtype: float64
如果不指定index,标签默认从0开始
#dict
>>> d = {'b' : 1, 'a' : 0, 'c' : 2}
>>> pd.Series(d)
b 1
a 0
c 2
dtype: int64
index的顺序跟字典key的顺序一样.
>>> pd.Series(d,index=['b', 'c', 'd', 'a'])
b 1.0
c 2.0
d NaN
a 0.0
dtype: float64
在这里,index顺序跟传入的数据一致.虽然‘d’在字典中不存在,但为了保证数据不丢失,便创建起来,其值为空.这可以理解为数据对齐
     #scalar (标量)
>>> pd.Series(5,index=['a', 'b', 'c', 'd', 'e'])
a 5
b 5
c 5
d 5
e 5
dtype: int64
>>> pd.Series('a',index=['b', 'c', 'd', 'a'])
b a
c a
d a
a a
dtype: object
一整列的数据都一样
 
 

#*操作
     #ndarray-like
切片,过滤,通过索引取值
>>> se =pd.Series(np.random.randn(5),index=['a', 'b', 'c', 'd', 'e'])
>>> se[:3] #slice
a 1.169659
b -1.557760
c 1.199475
dtype: float64
>>> se[se >se.median()] #filter
a 1.169659
c 1.199475
dtype: float64
>>> se[[4,3,1]] #indexing
e -1.113787
d 0.571881
b -1.557760
dtype: float64
#dic-like
索引,in 判断
>>> se['a']=12 #indexing
>>> 'e' in se
True
#*计算:矢量加法,数乘,函数
>>> se+se
a 24.000000
b -3.115519
c 2.398949
d 1.143761
e -2.227573
dtype: float64
>>> se*4
a 48.000000
b -6.231039
c 4.797899
d 2.287523
e -4.455147
dtype: float64
>>> np.exp(se)
a 162754.791419
b 0.210607
c 3.318373
d 1.771596
e 0.328313
dtype: float64
 

#*其他:序列的命名和重命名
>>> s=pd.Series(np.random.randn(5),name='something')
>>> s
0 -0.010572
1 -0.519850
2 0.649738
3 -0.443780
4 0.402685
Name: something, dtype: float64
>>> s2=s.rename('different')
>>> s2
0 -0.010572
1 -0.519850
2 0.649738
3 -0.443780
4 0.402685
Name: different, dtype: float64
变成两个不同的序列
 
 

源码:
import pandas as pdu
import numpy as npa
n
#basic tentet:data aligment/基本的原则:数据对齐m
#point:data types;indexing;axis labeling/alignment]/要点:数据类型,索引,轴标签和对齐 def series():
#*generate
#ndarray
se=pd.Series(np.random.randn(5))
se =pd.Series(np.random.randn(5),index=['a', 'b', 'c', 'd', 'e'])
#dict
d = {'b' : 1, 'a' : 0, 'c' : 2}
se=pd.Series(d)
se=pd.Series(d,index=['b', 'c', 'd', 'a'])
#scalar
se=pd.Series(5,index=['a', 'b', 'c', 'd', 'e']) #*operate
#ndarrat-like
se[:3] #slice
se[se >se.median()] #filter
se[[4,3,1]] #indexing
#dict-like
se['a']=12 #indexing
'e' in se #compute
se+se
se*2
np.exp(se)

pandas数据结构之series操作的更多相关文章

  1. pandas 学习(1): pandas 数据结构之Series

    1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会 ...

  2. pandas数据结构:Series/DataFrame;python函数:range/arange

    1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会 ...

  3. pandas数据结构之DataFrame操作

    这一次我的学习笔记就不直接用官方文档的形式来写了了,而是写成类似于“知识图谱”的形式,以供日后参考. 下面是所谓“知识图谱”,有什么用呢? 1.知道有什么操作(英文可以不看) 2.展示本篇笔记的结构 ...

  4. pandas数据结构之Series笔记

    对Series的理解也源于对其相关的代码操作,本次仅贴一些代码来加深理解以及记忆 import pandas as pd import numpy as np s = pd.Series(np.ran ...

  5. pandas教程1:pandas数据结构入门

    pandas是一个用于进行python科学计算的常用库,包含高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单.pandas建造在NumPy之上,它使得以NumPy为中心的应用很容 ...

  6. pandas 数据结构的基本功能

    操作Series和DataFrame中的数据的常用方法: 导入python库: import numpy as np import pandas as pd 测试的数据结构: Series: > ...

  7. 读书笔记一、pandas数据结构介绍

    pandas数据结构介绍 主要两种数据结构:Series和DataFrame.   Series   Series是一种类似于一维数组的对象,由一组数据(各种NumPy数据类型)+数据标签(即索引)组 ...

  8. python数据分析学习(1)pandas一维工具Series讲解

    目录 一:pandas数据结构介绍   python是数据分析的主要工具,它包含的数据结构和数据处理工具的设计让python在数据分析领域变得十分快捷.它以NumPy为基础,并对于需要类似 for循环 ...

  9. pandas | 使用pandas进行数据处理——Series篇

    本文始发于个人公众号:TechFlow,原创不易,求个关注 上周我们关于Python中科学计算库Numpy的介绍就结束了,今天我们开始介绍一个新的常用的计算工具库,它就是大名鼎鼎的Pandas. Pa ...

随机推荐

  1. vue b表单

    你可以用 v-model 指令在表单控件元素上创建双向数据绑定. v-model 会根据控件类型自动选取正确的方法来更新元素. 输入框 实例中演示了 input 和 textarea 元素中使用 v- ...

  2. Django_ORM字段_字段参数

    Object Relational Mapping (ORM) ORM:对象关系映射模式是一种为解决面向对象与关系数据库存在的互补匹配的现象技术.简单说就是通过使用描述对象和数据库之间的映射的元数据, ...

  3. java的初学感想

    了解了JAVA的来源后,翻阅了一点关于java特性的书籍,众所周知,安全性和可移植性是java得以成功的前提,对此我想发表一点看法. 1.安全性:任何东西的安全性都是相对的,虽然java编译生成的字节 ...

  4. 解题报告 『[NOI2003]逃学的小孩(树上操作)』

    原题地址 今天翻看集训队巨佬写的一篇有关于树形动规的论文时看到了这道题,但感觉并不需要用动规,求出树的直径再暴力枚举一下就搞出来了. 其实是因为我太弱了,看不懂大佬在写什么orz 代码实现如下: #i ...

  5. RedHat7系列(Centos/Debian) FireWall 防火墙 设置

    RedHat 7 系列之后 系统把默认的iptables 换成了 Firewall 所以我们要适应 这个新的防火墙管理 -------------------服务相关----------------- ...

  6. python------mysql API

    参考引用博客:http://www.cnblogs.com/wupeiqi/articles/5713330.html ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全 ...

  7. vue 在全局设置cookie main.js文件

    //设置cookie Vue.prototype.setCookie=function(cname, cvalue, exdays) { var d = new Date(); d.setTime(d ...

  8. Breakout 打砖块

    发售年份 1976 发售平台 多平台 开发商 雅达利(Atari) 类型 动作 https://www.youtube.com/watch?v=AMUv8KvVt08

  9. devexpress gridview代码设置

    39 //绑定DataTable 40 gridControl1.DataSource = dt; 41 gridView1.OptionsCustomization.AllowColumnMovin ...

  10. 剑指offer 5.栈和队列 用两个栈实现队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型.   解题思路:1,整体思路是元素先依次进入栈1,再从栈1依次弹出到栈2,然后弹出栈2顶部的元素,整个过程 ...