写在前面

Hello,大家好,我是可乐。

这是Python数据分析系列的第5篇文章,今天要说的是数据结构中的序列(Series),Series是由一组数据和一组行索引构成的一维数组,可以理解为Excel里没有列名的一列数据。

要使用Series,就要导入pandas模块。

import pandas as pd

1.    建

新建一个Series,用pd.Series,可以从列表中创建

# 从列表中新建一个序列
In [1]:S1 = pd.Series([2,4,6,8])
       S1
Out[1]:0 2
       1 4
       2 6
       3 8
       dtype:int63

输出的第一列[0,1,2,3]是这个序列S1的索引,第二列[2,4,6,8]是S1的值,与列表最主观的不同是,列表是横向排列,序列时纵向排列的。

同时可以看到,在不指定索引的情况下,默认索引从0开始递增,当然也可指定索引,如下例, 给S2序列指定了从1开始递增的索引,用index给它赋值。

In [2]:S2 = pd.Series(["a","b","d","e"],index = [1,2,3,4])
       S2
Out[2]:1 a
       2 b
       3 d
       4 e
       dtype:object

还可以从字典中创建,这时键就是该序列的索引。

In [3]:S3 = pd.Series({"Tom":101,"Tony":102,"Judy":103})
       S3
Out[3]:Tom  101
       Tony 102
       Judy 103
       dtype:int64

2.    增

在序列中新增数据,实际上是创建一个新的序列,然后将两个序列纵向合并。如在S2的基础上,把S1追加过去,用append方法,这样就间接实现了往S2序列中增加数据。

In [4]:S2.append(S1)
Out[4]:1 a
       2 b
       3 d
       4 e
       0 2
       1 4
       2 6
       3 8
       dtype:object

又或者,只想在S2序列中增加一个“f”的值,还是这样。

In [5]:S_f = pd.Series(["f"],index = [5])
       S2.append(S_f)
Out[5]:1 a
       2 b
       3 d
       4 e
       5 f
       dtype:object

3.    删

删除序列中的值,用drop方法按照索引删除,如要删除a这个值,drop里填写a对应的索引1,注意不是0,因为这不是默认索引,是我们设置了的从1开始递增的索引。

In [6]:# 删除
       S2.drop([1])
Out[6]:2 b
       3 d
       4 e
       5 f
       dtype:object

上面的例子是删除一个值,也可以删除多个值

In [7]:# 删除
       S2.drop([1,3])
Out[7]:2 b
       4 e
       5 f
       dtype:object

4.    查

查找某个值是否在序列中

同样用in操作符,这里就不多说了,要说一下另一个方法,isin,返回的是布尔值。

In [8]:# 查找
       S2.isin([a,f])
Out[8]:2 FALSE
       4 FALSE
       5 TRUE
       dtype:bool

查找S2序列中是否包含“a”和"f"的值,索引5是f,所以返回TRUE,其他都返回FALSE。

查找序列中指定位置的值

通过索引的访问,查找指定位置的值。

In [9]:# 索引
       S4 = pd.Series(["c","o","l","a"],index = ["一","二","三","四"])
       S4["三"]
Out[9]:l

这里新建了一个S4序列,索引是自定义的["一","二","三","四"],通过查找索引“三”,得到对应的值“l”。

切片,访问多个位置,访问前三(包括第三)的数据。

In [10]:# 切片
       S4[:3]
Out[10]:一 c
        二 o
        三 l
        dtype:object

5.改

对值的修改和其他数据结构一样,根据索引查找,然后赋值,如把S4序列的c改成d:

In [11]:# 修改
       S4["一"] = "d"
       S4
Out[11]:一 d
        二 o
        三 l
        四 a
        dtype:object

练习1:创建一个0、1、2、3、4的序列,修改其索引为A,B,C,D,E

关于练习题的答案,可以在后台回复:练习1,得到

写在后面

最近在看《格局逆袭》这本书,有一句话着实点醒了我,读后有一种醍醐灌顶的感觉,与君共勉:

提升自己最快的方法不是学习新东西,而是弥补旧短板

数据分析的工具那么多:Excel、SQL、Python、Power BI、Tableau、SPSS…难道要一个一个轮着学完吗?都学完了就真的精通了吗?所以我们的目的不应该是把自己变成一个学习工具的工具,工具的运用都大同小异,思维的高度决定个体的差异,用Excel做相关性分析和用Python做有什么区别吗?结果不都是一样的吗,关键在于你要搞懂为什么要做相关性分析,以及对分析结果的理解。

温故而知新,大智慧啊,古人诚不欺我。

所以,你怎么看呢?欢迎评论区留言啊~


©著作权归作者所有:来自51CTO博客作者mb5fe18f5282239的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 教你预测北京雾霾,基于keras LSTMs的多变量时间序列预测
  2. 图解一道腾讯笔试算法题:「最长上升子序列」
  3. 时间序列&日期学习笔记大全(上)
  4. 不会时间序列预测?不要紧,大神来教你
  5. PHP重置数组为连续数字索引的三种方式
  6. 详解之php反序列化
  7. 直击PHP序列化和反序列化原理
  8. php之json与xml序列化/反序列化
  9. 详解PHP的session反序列化漏洞问题

随机推荐

  1. Sqlite在Android上的一个Bug - 临时文件
  2. android 中targetSdkVersion和与target属
  3. Android 我的 Android Studio 配置文件
  4. android 嵌入服务端页面二 之WebView与页
  5. android 定义手势
  6. PC通过USB连接Android通信(Socket)
  7. android 各系统区别(android 1.5- androi
  8. android 处理鼠标滚轮事件
  9. Android 全屏显示的两种方法
  10. android之实现各个组件点击事件处理