(五)Python:Pandas中的Series
目录
基本特征
- 类似一维数组的对象
- 由数据和索引组成
- 有序定长的字典
创建
Series能创建出带有数据和索引的字典来,且索引(index)与值(value)之间相互独立。创建方法如下所示:
自动生成索引
Series能创建自动生成索引的字典,索引从0开始,代码如下所示:
import pandas as pd
aSer = pd.Series([1, 2.0, 'a']) # 自带索引
print(aSer)
print(aSer.values) # 输出值
print(aSer.index) # 输出键
运行结果如下所示:
生成自带索引的字典 0 1 1 2.0 2 a dtype: object 值 [1 2.0 'a'] 键,和range函数类似 RangeIndex(start=0, stop=3, step=1)
自定义生成索引
Series除了能创建自动生成索引的字典外,还能自定义生成索引,代码如下所示:
import pandas as pd
bSer = pd.Series(['apple', 'peach', 'lemon'], index=[1, 2, 3]) # 指定索引
print(bSer)
print(bSer.values) # 输出值
print(bSer.index) # 输出键
运行结果如下所示:
自定义生成索引的字典· 1 apple 2 peach 3 lemon dtype: object 值 ['apple' 'peach' 'lemon'] 自定义的键 Int64Index([1, 2, 3], dtype='int64')
使用
基本运算
定义好了一个Series之后,我们可以对它进行一些简单的操作,代码如下所示:
import pandas as pd
import numpy as np
aSer = pd.Series([3, 5, 7], index=['a', 'b', 'c'])
print(aSer['c']) # 取键值
print(aSer*2) # 值乘2
print(np.exp(aSer)) # 自然对数(e)的N次方, 如e^3
运行结果如下所示:
键值 7 把键值乘以2 a 6 b 10 c 14 dtype: int64 取自然对数(e)的N次方 a 20.085537 = e^3 b 148.413159 c 1096.633158 dtype: float64
数据对齐
数据对齐是Serie的一个很重要的功能,能简化数据处理,代码如下所示:
import pandas as pd
data = {'AXP': '86.40', 'CSCO': '122.64', 'BA': '99.44'}
sindex = ['AXP', 'CSCO', 'BA', 'AAPL']
aSer = pd.Series(data) # 根据自身创建一个Series
print(aSer)
print(pd.isnull(aSer)) # 检测哪些值是空的
bSer = pd.Series(data, index= sindex) # 根据自身的值和把另一个列表作为索引创建一个Series
print(bSer) # 对应索引无数据的,显示为NaN(Not a number)
print(pd.isnull(bSer)) # 检测哪些值是空的
运行结果如下所示:
根据自身创建一个Series AXP 86.40 CSCO 122.64 BA 99.44 dtype: object 检测哪些值是空的 AXP False CSCO False BA False dtype: bool 根据自身的值和把另一个列表作为索引创建一个Series AXP 86.40 CSCO 122.64 BA 99.44 AAPL NaN dtype: object 检测哪些值是空的 AXP False CSCO False BA False AAPL True dtype: bool
数据对齐的一个重要功能是:在运算中自动对齐不同索引的数据,代码如下所示:
import pandas as pd
data = {'AXP': '86.40', 'CSCO': '122.64', 'BA': '99.44'}
sindex = ['AXP', 'CSCO', 'BA', 'AAPL']
bSer = pd.Series(data, index= sindex)
aSer = {'AXP':'86.40','CSCO':'122.64','CVX':'23.78'}
cSer = pd.Series(aSer)
print(bSer + cSer) # 都有数据才会显示,如bSer中无CVX,所以显示为NaN,都有数据的,因为是字符串,便拼接在一起
运行结果如下所示:
AAPL NaN AXP 86.4086.40 BA NaN CSCO 122.64122.64 CVX NaN dtype: object
若数据类型是数值型,便会相加,代码如下所示:
import pandas as pd
data = {'AXP':86.40,'CSCO':122.64,'BA':99.44}
sindex = ['AXP', 'CSCO', 'BA', 'AAPL']
aSer = pd.Series(data, index = sindex)
bSer = {'AXP': 86.40, 'CSCO': 130.64, 'CVX': 23.78}
cSer = pd.Series(bSer)
print( (aSer+cSer)/2) # 数值相加再除2
运行结果如下所示:
AAPL NaN AXP 86.40 BA NaN CSCO 126.64 CVX NaN dtype: float64
相关文章
- [oeasy]python0030_设置路径_export_PATH_zsh_系统路径设置_export
- Python从0到1丨细说图像增强及运算
- Python图像处理丨详解图像去雾处理方法
- 盘点Python 中字符串的常用操作
- 从0到1学Python丨图像平滑方法的两种非线性滤波:中值滤波、双边滤波
- 跟我学Python图像处理丨带你入门OpenGL
- 跟我学Python图像处理丨图像分类原理与案例
- Python 中 Pickle 库的使用详解
- Python: PyQt5在Pycharm中的配置
- Python: 按位或运算符(Bitwise OR)
- 不知道"鸭子类型"就当没学过python
- 盘一盘 Python 特别篇 23 - 爱因斯坦求和 einsum
- Python中的一个神秘文件:__init__.py 使用讲解
- 孤陋寡闻了,Python中类竟可以像列表一样操作
- Python表白C#?文末有彩蛋!
- (数据科学学习手札147)Python GIS利器shapely全新2.0版本一览
- Python 大数据量文本文件高效解析方案代码实现
- Python3.11正式版,它来了!
- 入门Python,看完这篇就行了!
- Python操作Excel表格