python series函数,【Python】【pandas-汇总2】series常用属性和函数
1.Series常用属性
属性说明
values获取数组
index获取索引
namevalues的name
index.name索引的name
2.Series常用函数
Series可使用ndarray或dict的差不多所有索引操作和函数,集成了ndarray和dict的优点
函数说明
Series([x,y,...])Series({'a':x,'b':y,...}, index=param1)生成一个Series
Series.copy()复制一个Series
Series.reindex([x,y,...], fill_value=NaN)
Series.reindex([x,y,...], method=NaN)
Series.reindex(columns=[x,y,...])重返回一个适应新索引的新对象,将缺失值填充为fill_value
返回适应新索引的新对象,填充方式为method
对列进行重新索引
Series.drop(index)丢弃指定项
Series.map(f)应用元素级函数
排序函数说明
Series.sort_index(ascending=True)根据索引返回已排序的新对象
Series.order(ascending=True)根据值返回已排序的对象,NaN值在末尾
Series.rank(method='average', ascending=True, axis=0)为各组分配一个平均排名
df.argmax()
df.argmin()返回含有最大值的索引位置
返回含有最小值的索引位置reindex的method选项: ffill, bfill 向前填充/向后填充 pad, backfill 向前搬运,向后搬运rank的method选项 'average' 在相等分组中,为各个值分配平均排名 'max','min' 使用整个分组中的最小排名 'first' 按值在原始数据中出现的顺序排名
3.Series常用属性例程# -*- coding: utf-8 -*-
"""
@author: 蔚蓝的天空Tom
Aim:pandas.series常用属性的例程
属性说明
values 获取数组
index 获取索引
name values的name
index.name 索引的name
"""
import pandas as pd
from pandas import Series
if __name__=='__main__':
s = pd.Series(['Tom', 'Kim', 'Andy'])
# 0 Tom
# 1 Kim
# 2 Andy
# dtype: object
#数值数组
s.values #['Tom' 'Kim' 'Andy']
#索引序列
s.index #RangeIndex(start=0, stop=3, step=1)
#values的name
s.name #None
#索引的name
s.index.name #None
#设置series的name和index.name
s.name = 'Name'
s.index.name = 'ID'
# ID
# 0 Tom
# 1 Kim
# 2 Andy
# Name: Name, dtype: object
#获取series的name和index.name
s.name #Name
s.index.name #ID
4.Series常用函数例程
4.1创建Series对象# -*- coding: utf-8 -*-
"""
@author:蔚蓝的天空Tom
Aim:实现Series常用函数的例程---生成Series对象
(1)生成一个Series
Series([x,y,...])Series({'a':x,'b':y,...}, index=param1)
"""
import pandas as pd
from pandas import Series
if __name__=='__main__':
#(1)生成一个Series
#Series([x,y,...])
#Series({'a':x,'b':y,...}, index=param1)
#数组创建Series,使用默认整数数值行索引
s = pd.Series(['Tom', 'Kim', 'Andy'])
# 0 Tom
# 1 Kim
# 2 Andy
# dtype: object
#数组创建Series,指定行索引index
s = pd.Series(['Tom', 'Kim', 'Andy'], index=['No.1', 'No.2', 'No.3'])
# No.1 Tom
# No.2 Kim
# No.3 Andy
# dtype: object
#字典创建Series,使用默认整数数值行索引(索引名称的字典序)
data = {'No.2':'Tom', 'No.1':'Kim', 'No.3':'Andy'}
s = pd.Series(data)
s.index.name = 'ID'
s.name='StudentsInfo'
# ID
# No.1 Kim
# No.2 Tom
# No.3 Andy
# Name: StudentsInfo, dtype: object
#字典创建Series,指定行索引的排序Index
data = {'No.1':'Tom', 'No.2':'Kim', 'No.3':'Andy'}
ind = ['No.3', 'No.2', 'No.1']
s = pd.Series(data, index=ind)
# No.3 Andy
# No.2 Kim
# No.1 Tom
# dtype: object
#字典创建Series,指定行索引的排序index
data = {'No.1':'Tom', 'No.2':'Kim', 'No.3':'Andy'}
ind = ['No.3', 'No.2']
s = pd.Series(data, index=ind)
# No.3 Andy
# No.2 Kim
# dtype: object
#字典创建Series,指定行索引的排序index
data = {'No.1':'Tom', 'No.2':'Kim', 'No.3':'Andy'}
ind = ['No.2', 'No.1', 'No.99']
s = pd.Series(data, index=ind)
# No.2 Kim
# No.1 Tom
# No.99 NaN
# dtype: object
#使用pd.isnull(series)判断series对象是否含有NaN数值
data = {'No.1':'Tom', 'No.2':'Kim', 'No.3':'Andy'}
ind = ['No.2', 'No.1', 'No.99']
s = pd.Series(data, index=ind)
ret = pd.isnull(s)
# No.2 False
# No.1 False
# No.99 True
# dtype: bool
#使用pd.notnull(series)判断series对象是否含有NaN数值
data = {'No.1':'Tom', 'No.2':'Kim', 'No.3':'Andy'}
ind = ['No.2', 'No.1', 'No.99']
s = pd.Series(data, index=ind)
ret = pd.notnull(s)
# No.2 True
# No.1 True
# No.99 False
# dtype: bool
4.2拷贝Series之深拷贝+浅拷贝# -*- coding: utf-8 -*-
"""
@author:蔚蓝的天空Tom
Aim:实现Series常用函数的例程----拷贝Series,深拷贝和浅拷贝
(2)复制一个Series
Series.copy()
"""
import pandas as pd
from pandas import Series
if __name__=='__main__':
#(2)复制一个Series
#Series.copy()
s = pd.Series(['Tom', 'Kim', 'Andy'], index=['No.1', 'No.2', 'No.3'])
# No.1 Tom
# No.2 Kim
# No.3 Andy
# dtype: object
#深拷贝series
cpys = s.copy(deep=True)
cpys['No.1'] = 'xxx'
#print(cpys)
# No.1 xxx
# No.2 Kim
# No.3 Andy
# dtype: object
#print(s)
# No.1 Tom
# No.2 Kim
# No.3 Andy
# dtype: object
#浅拷贝series
cpys = s.copy(deep=False)
cpys['No.1'] = 'xxx'
#print(cpys)
# No.1 xxx
# No.2 Kim
# No.3 Andy
# dtype: object
#print(s)
# No.1 xxx
# No.2 Kim
# No.3 Andy
# dtype: object
4.3reindex函数# -*- coding: utf-8 -*-
"""
@author:蔚蓝的天空Tom
Aim:实现Series常用函数的例程---series.reindex()适应新索引的新对象,不修改源对象,返回新对象
(3)重返回一个适应新索引的新对象,将缺失值填充为fill_value
Series.reindex([x,y,...], fill_value=NaN)
(4)返回适应新索引的新对象,填充方式为method
Series.reindex([x,y,...], method=NaN)
(5)对列进行重新索引
Series.reindex(columns=[x,y,...])
"""
import pandas as pd
from pandas import Series
if __name__=='__main__':
#Series.reindex([x,y,...])重返回一个适应新索引的新对象,缺失索引对应数值使用默认值NaN
s = pd.Series(['Tom', 'Kim', 'Andy'], index=['No.1', 'No.2', 'No.3'])
rs = s.reindex(['No.0', 'No.1', 'No.2', 'No.3', 'No.4'])
#No.0 NaN
#No.1 Tom
#No.2 Kim
#No.3 Andy
#No.4 NaN
#dtype: object
#Series.reindex([x,y,...], fill_value=NaN)重返回一个适应新索引的新对象,缺失索引对应数值使用指定值
s = pd.Series(['Tom', 'Kim', 'Andy'], index=['No.1', 'No.2', 'No.3'])
rs = s.reindex(['No.0', 'No.1', 'No.2', 'No.3', 'No.4'], fill_value='XXX')
#No.0 XXX
#No.1 Tom
#No.2 Kim
#No.3 Andy
#No.4 XXX
#dtype: object
#(4)Series.reindex([x,y,...], method=NaN) 返回适应新索引的新对象,填充方式为method
#ffill或pad: 前向(或进位)填充
#bfill或backfill: 后向(或进位)填充
s = pd.Series(['Tom', 'Kim', 'Andy'], index=['No.1', 'No.2', 'No.3'])
rs = s.reindex(['No.0', 'No.1', 'No.4', 'No.5'], method='ffill') #method='pad'同效果
#No.0 NaN
#No.1 Tom
#No.4 Andy #因为前向填充(取No.3的值Andy作为填充值)
#No.5 Andy #取No.4的值作为填充值
#dtype: object
s = pd.Series(['Tom', 'Kim', 'Andy'], index=['No.1', 'No.2', 'No.3'])
rs = s.reindex(['No.0', 'No.1', 'No.4', 'No.5'], method='bfill')
#No.0 Tom #因为后向填充(取No.1的值Tom作为填充值)
#No.1 Tom
#No.4 NaN
#No.5 NaN
#dtype: object
4.4drop()方法# -*- coding: utf-8 -*-
"""
@author:蔚蓝的天空Tom
Aim:实现Series常用函数的例程---drop()方法,丢弃指定项,不修改对源对象内容,返回新对象
(6)丢弃指定项
Series.drop(index)
"""
import pandas as pd
from pandas import Series
if __name__=='__main__':
#(6)丢弃指定项Series.drop(index)
s = pd.Series(['Tom', 'Kim', 'Andy'], index=['No.1', 'No.2', 'No.3'])
#删除一个元素,由索引号指定
ds = s.drop('No.1')
#No.2 Kim
#No.3 Andy
#dtype: object
data = {'Name':{'No.1':'Tom', 'No.2':'Kim', 'No.3':'Andy'},
'Age':{'No.1':18, 'No.2':16, 'No.3':19}}
df = pd.DataFrame(data)
# Age Name
#No.1 18 Tom
#No.2 16 Kim
#No.3 19 Andy
#删除指定行
ds = df.drop('No.1')
# Age Name
#No.2 16 Kim
#No.3 19 Andy
#删除指定列,可以产出多列,序列中指出就可以['Age','Name']
ds = df.drop(['Age'], axis=1)
# Name
#No.1 Tom
#No.2 Kim
#No.3 Andy
4.5series.map(func)元素函数向量化# -*- coding: utf-8 -*-
"""
@author:蔚蓝的天空Tom
Aim:实现Series常用函数的例程---应用元素级函数series.map(func),不修改源对象,返回新对象
(7)应用元素级函数
Series.map(f)
"""
import math
import pandas as pd
from pandas import Series
if __name__=='__main__':
#(7)应用元素级函数Series.map(f)
func = lambda x:x*2
s = pd.Series([1, 3, 5], index=['No.1', 'No.2', 'No.3'])
ms = s.map(func)
#No.1 2
#No.2 6
#No.3 10
#dtype: int64
ms = s.map(np.exp)
#No.1 2.718282
#No.2 20.085537
#No.3 148.413159
#dtype: float64
ms = s.map(math.exp)
#No.1 2.718282
#No.2 20.085537
#No.3 148.413159
#dtype: float64
4.6 series排序函数# -*- coding: utf-8 -*-
"""
@author: 蔚蓝的天空Tom
Aim:实现Series常用函数的例程---series对象排序方法
Series.sort_index(ascending=True)根据索引返回已排序的新对象
Series.order(ascending=True)根据值返回已排序的对象,NaN值在末尾
Series.rank(method='average', ascending=True, axis=0)为各组分配一个平均排名
df.argmax()
df.argmin()
返回含有最大值的索引位置
返回含有最小值的索引位置
reindex的method选项:
ffill, bfill 向前填充/向后填充
pad, backfill 向前搬运,向后搬运
rank的method选项
'average' 在相等分组中,为各个值分配平均排名
'max','min' 使用整个分组中的最小排名
'first' 按值在原始数据中出现的顺序排名
"""
import pandas as pd
from pandas import Series
if __name__=='__main__':
#索引升序排序,Series.sort_index(ascending=True),默认True
s = pd.Series([6, 2, 8], index=['No.1', 'No.2', 'No.3'])
ss = s.sort_index(ascending=True)
#No.1 6
#No.2 2
#No.3 8
#dtype: int64
#索引降序排序,Series.sort_index(ascending=Flase)
ss = s.sort_index(ascending=False)
#No.3 8
#No.2 2
#No.1 6
#dtype: int64
#数值升序排序 Series.sort_values(ascending=True) ,默认True
s = pd.Series([6, 2, 8], index=['No.1', 'No.2', 'No.3'])
so = s.sort_values(ascending=True)
#No.2 2
#No.1 6
#No.3 8
#dtype: int64
#数值降序排序 Series.sort_values(ascending=False)
so = s.sort_values(ascending=False)
#No.3 8
#No.1 6
#No.2 2
#dtype: int64
4.7rank()排名方法# -*- coding: utf-8 -*-
"""
@author: 蔚蓝的天空Tom
Aim:实现Series的排名方法例程---series.rank()
Aim:注意区分排名和排序的区别, 排名是按照排序(降序/升序)结果,用排名数值(1~n),替换数值,则每个数值对应一个排名
#排名(Series.rank(method='average', ascending=True))的作用与排序的不同之处是:
#他会把对象的 values 替换成名次(从 1 到 n),问题待解决问题:如何处理平级项,
#method 参数有四个值可选:average, min, max, first来处理评级项问题。
Note:此处排序采用升序排序,然后排名以升序排序的结果进行排名。对降序排序的排名道理都是一样的,此处不予展示了。
"""
import pandas as pd
from pandas import Series
if __name__=='__main__':
s = pd.Series([6,9,6,2])
s.index.name='ID'
#ID
#0 6
#1 9
#2 6
#3 2
#平均排名,rank()的method默认为average,如果存在评级项,则排名为名次/m,m为评级项元素个数
sr = s.rank()
#ID
#0 2.5 #两个6,排名2和3,平均排名为2.5
#1 4.0
#2 2.5 #两个6,排名2和3,平均排名为2.5
#3 1.0
#平均排名,显示调用method=average
sr = s.rank(method='average')
#ID
#0 2.5
#1 4.0
#2 2.5
#3 1.0
#dtype: float64
#最小值排名
sr = s.rank(method='min')
#ID
#0 2.0 #两个6,排名2和3,最小排名都为2
#1 4.0
#2 2.0 #两个6,排名2和3,最小排名都为2
#3 1.0
#dtype: float64
#最大值排名
sr = s.rank(method='max')
#ID
#0 3.0 #两个6,排名2和3,最大排名都为3
#1 4.0
#2 3.0 #两个6,排名2和3,最大排名都为3
#3 1.0
#dtype: float64
#第一排名
sr = s.rank(method='first')
#ID
#0 2.0 #两个6,排名2和3,first排名时第一个6排名取2
#1 4.0
#2 3.0 #两个6,排名2和3,first排名时第二个6排名取3
#3 1.0
#dtype: float64
4.8最大值/最小值的行索引方法argmin()、argmax()# -*- coding: utf-8 -*-
"""
@author: 蔚蓝的天空Tom
Aim:Series中最大(最小)数值的索引方法例程----argmax()、argmin()
df.argmax() 返回含有最大值的索引位置
df.argmin() 返回含有最小值的索引位置
"""
import pandas as pd
from pandas import Series
if __name__=='__main__':
s = pd.Series([6,8,9,2], index=['No.1','No.2','No.3','No.4'])
#No.1 6
#No.2 8
#No.3 9
#No.4 2
#dtype: int64
ind = s.argmax()
#No.3
ind = s.argmin()
#No.4
v = ss[ss.argmin()]
#2
v = ss.min()
#2
#排序对argmin()、argmax()结果没有影响
ss = s.sort_values(ascending=False)
#No.3 9
#No.2 8
#No.1 6
#No.4 2
#dtype: int64
ind =ss.argmax()
#No.3
v = ss[ss.argmax()]
#9
v = ss.max()
#9
(end)
python series函数,【Python】【pandas-汇总2】series常用属性和函数相关推荐
- 【pandas-汇总3】DataFrame常用属性、函数以及索引方式
1.DataFrame常用属性.函数以及索引方式 1.1DataFrame简介 DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值.字符串.布尔值等).Data ...
- c语言函数游戏,C语言做游戏常用到一些函数大全 2011.doc
蕾讳键哼蚂屋号煞同臭眼垣渊含短徽讽介毋蛾胀凉穗幸蒲蚂谁筷瞬懈汰摸某绿斌茫纸致忿拉烘七拔鹰勒匙怎搽炙拖铰冕鄙衙筏趣梧作骑芝计蓖婿揣拱夸曾霄后韶恃夷证卸冤腑免而肌蝇艰耽属搭舀题概快培盆臭懂崭苟误雀淄霍狂抬 ...
- Python数据挖掘2:pandas使用:Series一串数字和DataFrame数据框
''' pandas 来源:Dust的天善智能韦玮老师 课堂笔记 ''' import pandas as pda ''' Series 一串数字 index 索引,默认0,1,2,3 DataFra ...
- python 正则 replace函数_python pandas中的str对象的replace函数
网页链接mp.weixin.qq.com replace函数本身并不复杂,但由于该函数和正则表达式结合会使其作用更加灵活,该函数的主要作用是根据特定的表达式匹配字符串找到后并按照给定的字符或者函数进 ...
- python isalpha函数用法_python中string模块各属性以及函数的用法
任何语言都离不开字符,那就会涉及对字符的操作,尤其是脚本语言更是频繁,不管是生产环境还是面试考验都要面对字符串的操作. python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求 ...
- mysql 聚合函数内比较运算符_关于常用 MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结...
/* 关于MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结,*/ -- 1 运算符优先级 /* 12.1.1. 操作符优先级 以下列表显示了操作符优先级的由低到高的顺序.排列在同一行的操作符 ...
- 使用php函数判断数字,PHP 几个常用数字判断函数的简单示例
这篇文章主要为大家详细介绍了PHP 几个常用数字判断函数的简单示例,具有一定的参考价值,可以用来参考一下. 对PHP的几个常用数字判断函数代码感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧 ...
- mysql除法函数_理解MySQL运算符和常用内置函数_MySQL
一.MySQL中的运算符 注意事项: 1.在除法运算和模数运算中,如果除数是0,将是非法除数,结果返回NULL 取模运算中,也可以用MOD(a,b)函数或者a%b mysql> select 1 ...
- thinkphp5常用函数汇总_thinkphp 5 常用的助手函数
load_trait:快速导入Traits,PHP5.5以上无需调用 /** * 快速导入Traits PHP5.5以上无需调用 * @param string $class trait库 * ...
最新文章
- SpringBoot AOP实现接口次数访问统计
- 文件描述符、函数open和openat
- 七步从Angular.JS菜鸟到专家(2):Scopes
- 机器学习项目实战----泰坦尼克号获救预测(二)
- 分享一个响应式电商网站前端模板
- pip更改为豆瓣源以及源信任问题
- java8时间转换函数学习,教你脱离jdf转换的痛苦
- CSDN20181211博客黑板报
- php 打开word显示无法打开文件,word无法打开文件,因为内容有误怎么办
- 软件 黑苹果盒盖不休眠_怎么解决苹果电脑合盖自动休眠问题?
- android studio 正式版本
- Apriori concept (antecedent and a consequence module)
- C# Winform Panel 内控件大小不随Panel大小改变设置
- 关于游戏开发流程的分析
- PTA基础题考点汇总
- 烧脑电影:彗星来的那一夜(Coherence)
- Word:无法启动转换器WPFT532 WPFT632 解决方法
- 详解软件人力外包对于需求企业和外包it人员的好处
- nvme命令中prp_蛋蛋读NVMe之三
- uiautomator2+mitmproxy+weditor+Python3抖音数据抓取
热门文章
- C# 5.0功能之Async一瞥
- 用计算机弹的曲子符号,小哥今天呐来教大家在计算机里面怎么样打出这4个符号-word乘号...
- k8s-资源控制器RC、RS 、deployment
- 计算机win7如何加快开机速度,加快win7开机速度 让Win7系统加快开机速度小于30秒的方法...
- 中国闪电战印度仅需5小时
- 互联网打响云上争夺战:从计算到生态
- 女子能顶半边天,谷歌权势最大的15个女人
- IEEE 1588 时钟类型介绍
- 月圆夜,又中秋,抽个奖,祝好运。
- ArcGIS:统计各个点分别属于哪个行政区