• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python-pandas创建Series数据类型的操作

    1.什么是pandas

    2.查看pandas版本信息

    print(pd.__version__)

    输出:

    0.24.1

    3.常见数据类型

    常见的数据类型:

    - 一维: Series

    - 二维: DataFrame

    - 三维: Panel …

    - 四维: Panel4D …

    - N维: PanelND …

    4.pandas创建Series数据类型对象

    1). 通过列表创建Series对象

    array = ["粉条", "粉丝", "粉带"]
    # 如果不指定索引, 默认从0开始;
    s1 = pd.Series(data=array)
    print(s1)
    # 如果不指定索引, 默认从0开始;
    ss1 = pd.Series(data=array, index=['A', 'B', 'C'])
    print(ss1)

    输出:

    0    粉条
    1    粉丝
    2    粉带
    dtype: object
    A    粉条
    B    粉丝
    C    粉带
    dtype: object

    2). 通过numpy的对象Ndarray创建Series;

    n = np.random.randn(5)   # 随机创建一个ndarray对象;
    s2 = pd.Series(data=n)
    print(s2)
    # 修改元素的数据类型;
    ss2 = s2.astype(np.int)
    print(ss2)

    输出:

    0   -1.649755
    1    0.607479
    2    0.943136
    3   -1.794060
    4    1.569035
    dtype: float64
    0   -1
    1    0
    2    0
    3   -1
    4    1
    dtype: int64

    3). 通过字典创建Series对象;

    dict = {string.ascii_lowercase[i]:i for i in range(10)}
    s3 = pd.Series(dict)
    print(s3)

    输出:

    a    0
    b    1
    c    2
    d    3
    e    4
    f    5
    g    6
    h    7
    i    8
    j    9
    dtype: int64

    5.Series基本操作

    共同部分:

    import pandas as pd
    import numpy as np
    import  string
    
    array = ["粉条", "粉丝", "粉带"]
    s1 = pd.Series(data=array)
    print(s1)
    
    

    输出:

    0    粉条
    1    粉丝
    2    粉带
    dtype: object

    1). 修改Series索引.index

    print(s1.index) #输出:RangeIndex(start=0, stop=3, step=1)
    s1.index = ['A', 'B', 'C']
    print(s1) 

    输出:

    A    粉条
    B    粉丝
    C    粉带
    dtype: object

    2). Series纵向拼接.append

    s1.index = ['A', 'B', 'C']
    array = ["粉条", "粉丝", "粉带"]
    # 如果不指定索引, 默认从0开始;
    s2 = pd.Series(data=array)
    s3 = s1.append(s2)
    print(s3)

    输出:

    A    粉条
    B    粉丝
    C    粉带
    0    粉条
    1    粉丝
    2    粉带
    dtype: object

    3). 删除指定索引对应的元素.drop(‘index')

    s3 = s3.drop('C')  # 删除索引为‘C'对应的值;
    print(s3)

    输出:

    A    粉条
    B    粉丝
    0    粉条
    1    粉丝
    2    粉带
    dtype: object

    4). 根据指定的索引查找元素

    print(s3['B'])   #粉丝
    s3['B'] = np.nan #索引B处的值替换为缺失值
    print(s3)

    输出:

    A     粉条
    B    NaN
    0     粉条
    1     粉丝
    2     粉带
    dtype: object

    5). 切片操作 — 同列表

    print(s3[:2])  #显示前两个元素
    print(s3[::-1]) #逆序
    print(s3[-2:])  # 显示最后两个元素

    输出:

    A     粉条
    B    NaN
    dtype: object
    -------------------------
    2     粉带
    1     粉丝
    0     粉条
    B    NaN
    A     粉条
    dtype: object
    -------------------------
    1    粉丝
    2    粉带
    dtype: object

    6.Series运算

    先设置两个Series对象:

    import pandas as pd
    import numpy as np
    import  string
    
    
    s1  = pd.Series(np.arange(5), index=list(string.ascii_lowercase[:5]))
    s2  = pd.Series(np.arange(2, 8), index=list(string.ascii_lowercase[2:8]))
    
    print(s1)
    print(s2)
    

    按照对应的索引进行计算, 如果索引不同,则填充为Nan;

    1).加法add

    print(s1 + s2)
    print(s1.add(s2))

    输出:

    a    NaN
    b    NaN
    c    4.0
    d    6.0
    e    8.0
    f    NaN
    g    NaN
    h    NaN
    dtype: float64

    2).减法sub

    print(s1 - s2)
    print(s1.sub(s2))

    输出:

    a    NaN
    b    NaN
    c    0.0
    d    0.0
    e    0.0
    f    NaN
    g    NaN
    h    NaN
    dtype: float64

    3).乘法mul

    print(s1 * s2)
    print(s1.mul(s2))

    输出:

    a     NaN
    b     NaN
    c     4.0
    d     9.0
    e    16.0
    f     NaN
    g     NaN
    h     NaN
    dtype: float64

    4).除法div

    print(s1 / s2)
    print(s1.div(s2))

    输出:

    a    NaN
    b    NaN
    c    1.0
    d    1.0
    e    1.0
    f    NaN
    g    NaN
    h    NaN
    dtype: float64

    5).求中位数median

    print(s1.median())

    输出:

    2.0

    6).求和sum

    print(s1.sum())

    输出:

    10

    7).最大值max

    print(s1.max())

    输出:

    4

    8).最小值min

    print(s1.min())

    输出:

    0

    7.特殊的where方法

    series中的where方法运行结果和numpy中完全不同

    import pandas as pd
    import numpy as np
    import string
    s1 = pd.Series(np.arange(5), index=list(string.ascii_lowercase[:5]))
    print(s1)

    输出:

    a    0
    b    1
    c    2
    d    3
    e    4
    dtype: int64
    print(s1.where(s1 > 3))

    大于3的显示,不大于3的为NaN

    # 对象中小于3的元素赋值为10;
    print(s1.where(s1 > 3, 10))
    

    # 对象中大于3的元素赋值为10;
    print(s1.mask(s1 > 3, 10))
    

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • 详细介绍在pandas中创建category类型数据的几种方法
    • 对pandas中两种数据类型Series和DataFrame的区别详解
    • Pandas实现数据类型转换的一些小技巧汇总
    • Pandas数据类型之category的用法
    上一篇:python-opencv中的cv2.inRange函数用法说明
    下一篇:python 实现多线程的三种方法总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python-pandas创建Series数据类型的操作 python-pandas,创建,Series,数据,