【pandas】模块—series

一、python -series

1.1 series的介绍和使用

1.定义:一维带标签(索引)的数组
展开来说:由一组数据和一组与值相关的数据标签(索引)组成的一维数组对象

索引数组
a1
b2
c3
d4

2.series的特征

  • 数组中的数据可以是任意的类型(整数.浮点数.字符串.列表.字典等)
  • 数组中的数据因为同一类型

3.创建series

一般格式
s=pd.Series(data,index=index) %index是索引

#导入numpy库与pandas库
import pandas as pd
import numpy as np
#法一:通过列表list 创建Series
s=pd.Series([10,20,40,30])

注意:

  • s是存储变量;
  • . 是引用函数;
  • [10,20,40,30]是列表;
  • 输出后,左侧是索引;
#法二:通过字典dict创建Series
dict_1={"a":10,"c":5,"b":40}  
s1=pd.Series(dict_1)
#法三:通过数组array创建Series
array_1=np.arange(10,16)
s2=pd.Series(array_1,index=list("abcdef"))   #修改Series的索引
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示
d = {key1 : value1, key2 : value2 }

np.arange(1,10,2)  (初始值,结尾值,间隔)取前不取后
range(1,10,2)

list()
可以将元组或字符串等转换为列表,对字符串可以拆解成单个字符

1.2 Series的属性

(1) 获得索引index
(2) 通过赋值整体的修改索引值
(3) 修改index的名称
(4) 修改Series的名称
(5) 获取Series的值values

s2.index
s2.index=["aa","bb","cc","dd","eee","fff"]
s2.index.name="banana"  #输出时多了一个索引名称
s2.name="length"
s2.values

(6) series 的索引index

  1. 位置索引
  2. 名称索引
  3. 点索引法
  • 对象不重名的情况
  • 对象重名的情况
s2[-1]
s2["aa"]

(7)series 的切片slice

  1. 索引位置切片(不包含末端)
  2. 索引名称切片
s2[1:4]
s2["aa":"eee"]

(8)修改series的值
通过索引名或者位置直接赋值修改

s2["aa"]=100
s2[2]=120

(9)添加series的值

  1. 通过append来添加
  2. 通过方括号[]来添加值
s2.append(pd.Series([50,60],index=["a1","a2"]  
#创建了一个新的series,原来的s2不变,可以批量修改
s2["y"]=99 

(9)删除series的值

  • 通过del来删除 del s2[index]

(10)过滤series的值

  • 单条件筛选
  • 多条件筛选
s2[s2>90]    #s2>90
s2[(s2>50)|(s2<14)]
#条件用小括号扩起来,|表示or 的符号,&表示and的符号

1.3 缺失值处理

(1)判断是否具有缺失值 isnull()

  • 创建含缺失值
  • 取出缺失值
s=pd.Series([10,np.nan,15,19,None])#None 代表缺失值
s.isnull()
s[s.isnull()] 

(2)删除缺失值

  1. dropna()
  • 通过dropna()删除缺失值,并会返回一个新的Series
  1. 通过过滤的方式也能达到删除的后果
  2. 通过notnull()
s.dropna()
s=s.dropna()   #赋给原Series
#过滤方式删除缺失值
s=pd.Series([10,np.nan,15,19,None])#None 代表缺失值 初始化
s[~s.isnull()]
s[s.notnull()]

(3)填充缺失值

  1. fillna()
  • 用指定值填充缺失值
  1. 通过插值填充缺失值

    • 向前填充:ffill,全称为 front fill
    • 向后填充:bfill,全称为 back fill
# 用0填充缺失值,依然返回一个新的series
s.fillna(value=0)  #0是默认值
s.fillna(value=0,inplace=True)
s=pd.Series([10,np.nan,15,19,None])#None 代表缺失值 初始化
s.fillna(method="ffill")
s.fillna(method="bfill")

1.4 排序

(1)根据索引排序 sort_index()

  • 默认升序排序
  • 降序排列
s3=pd.Series([10,15,8,4,20],index=list("gadkb"))
s3.sort_index()

(2)根据值来排序 sort_values()

  • 默认升序排序
  • 降序排列
s3.sort_values()
s3.sort_values(ascending=False)

(3)排名

  • 中国式排名:两个并列第2,一个第三
  • rank()
s4=pd.Series([2,5,15,7,1,2])
s4.rank(ascending=False,method="dense")      #method 还有 max,min

1.5series 的描述性统计

  • 值的计数 value_counts()
  • 最小值 min()
  • 最大值 max()
  • 中位数 medium()
  • 均值 mean()
  • 求和 sum()
  • 标准差 std()
  • 描述性统计 describe().round(1)
s5=pd.Series([100,50,100,75,24,100])
s5.value_counts()
s5.describe().round(1)# round 是小数点后多少位来取

1.6 series的向量化运算

  • 可对series进行批量操作,并且返回一个新的series,并不会在原基础上直接修改
  • +,-,*,/,加减乘除运算
  • 可以自动对齐相同索引的数据,不同索引的数据对不上,则显示NaN
s6=pd.Series([35000,40000,71000,5500],index=list("abcd"))
s7=pd.Series([222,35000,4000,222],index=list("aqtb"))
s6+s7
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值