阅读之前假定你已经有了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. cf——C. Serval and Parenthesis Sequence

    括号正确匹配问题,应该不难 #include <iostream> #include <cstring> #include <string> #include &l ...

  2. js 中数字与字符串之间的转换

    数字转换为字符串 var num  = 123: 1.num.toString 2."" + num 3.String(num) 将数字转化为格式化后的字符串 num.toFixe ...

  3. 2018.5.11 B树总结

    小结 B树:二叉树,每个结点只存储一个关键字,等于则命中,小于走左结点,大于 走右结点: B-树:多路搜索树,每个结点存储M/2到M个关键字,非叶子结点存储指向关键 字范围的子结点: 所有关键字在整颗 ...

  4. ue4 StringTable

    StringTable 用法很简单可以参考 https://blog.csdn.net/u012801153/article/details/80393531 这里只说说上面文章中没提到的小技巧  T ...

  5. sklearn pipeline

    sklearn.pipeline pipeline的目的将许多算法模型串联起来,比如将特征提取.归一化.分类组织在一起形成一个典型的机器学习问题工作流. 优点: 1.直接调用fit和predict方法 ...

  6. cdcq的独立博客

    cdcq的独立博客终于又复活啦,以后就用这个了 地址: http://cdcq.coding.me 现在用的是luogu的博客:https://cdcq.blog.luogu.org/

  7. visual studio 2017 创建 android 本地共享库(.so) 并从 C# android 项目中调用

    Developing Xamarin Android Native Applications ★★★★★ ★★★★ ★★★ ★★ ★ February 23, 2015 by Ankit Asthan ...

  8. python-变量、if else语句 、for循环、while循环(4月26号)

    变量: 五.注意:python是可执行程序 在linux写python第一行必须写#!/usr/bin/env python(声明解释器在windows中写python第一行需要写# -*- codi ...

  9. Dev GridControl数据修改后实时更新数据源(转)

    1:  /// <summary> 2:  /// 嵌入的ComboxEdit控件选择值变化事件 3:  /// </summary> 4: /// <param nam ...

  10. python 将本地目录暴露为http服务

    python3 nohup python3 -m http.server 8080 &