Series的索引和切片

可以取中括号取单个索引(此时返回的是元素类型),或者中括号里一个列表取多个索引(此时返回的仍然是一个Series类型)

分为显示索引隐式索引

(1) 显示索引 (必须给索引的值):

-- 使用index中的元素作为索引值
    -- 使用 .loc[]  (推荐)

注意此时是闭区间

import numpy as np
from pandas import Series# 创建好Series
s = Series(np.random.random(10),index=list('abcdefghig'))
print(s)
print(s['a'])  # 可以直接取出行号为 'a' 的数据
print(s.loc['a'])  # 通过 .loc[]  的 方式取出索引为'a'的值
'''运行结果:a    0.866009b    0.173073c    0.679109d    0.247098e    0.115333f    0.085793g    0.135284h    0.203943i    0.125305g    0.564275dtype: float640.85981856788197520.8598185678819752
'''

(2) 隐式索引:

--- 使用整数作为索引值
   --- 使用  .iloc[]  (推荐)

注意: 此时是半开区间

print(s[0])  # 通过[]整数的方法取出相应索引的值
print(s.iloc[0])  # 通过 .iloc[] 取出相应索引的值
"""运行结果:0.328480026309244670.32848002630924467
"""

(3) 切片   (代码实例)

# 切片
'''# 取出索引值为 'a'到'e'的值'''
print(s['a':'e'])
'''# 取出从第一个开始到第五个'''
print(s[0:5])
'''取的方法和列表大致相同'''

 Series的基本概念

    1. 可以把Series看成一个定长的有序字典
         可以通过shape,size,index,values等得到series的属性

'''# 打印Series的形状 对于Series而言只能是一维的'''
print(s.shape)
# 结果  (10,)   代表 10 行'''# 打印出Series的大小'''
print(s.size)
# 结果  10'''打印出索引值'''
print(s.index)
# 结果 Index(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g'], dtype='object')'''打印出所有的值'''
print(s.values)
# 结果 [0.08580958 0.06484278 0.86393773 0.99667033 0.93736993 0.55856375
#  0.86119536 0.396556   0.30890221 0.51369992]

2. 可以通过head(),tail()快速查看Series对象的样式

对于大数据来说,读取文件的前几行和读取文件的后几行来说是非常必要的

'''head()方法,打印前几行,默认只打印前5行'''
print(s.head())
'''可以给head()方法中传递正整数值,数值为几,就打印前几行'''
print(s.head(7))  # 打印前7行'''tail()方法,打印后几行,默认只打印后5行'''
print(s.tail())
'''可以给tail()方法中传递正整数值,数值为几,就打印后几行'''
print(s.tail(7))  # 打印后5行

3.当索引没有对应的值时,可能出现缺失数据显示NaN(not a number)的情况

s1 = Series([1, 26, None, np.nan], index=list('金木水火'))
print(s1)
"""运行结果:金     1.0木    26.0水     NaN火     NaNdtype: float64
"""

有空值时,是可以进行加和等运算的,Series会自动将无效的空值等转化为float型,而在numpy的类型中是不可以的

4.可以使用pd.isnull(),pd.notnull(),或自带isnull(),notnull()函数检测缺失数据

'''判断Series是否为空,返回的类型还是Series'''
print(s1.isnull())
""" 结果金    False木    False水     True火     Truedtype: bool
"""'''判断Series不为空吗 , 为空返回False,不为空返回True'''
print(s1.notnull())
""" 结果:金     True木     True水    False火    Falsedtype: bool
"""'''取出Series中不为空的数据 Series[Series.notnull()]'''
print(s1[s1.notnull()])
"""金     1.0木    26.0dtype: float64
"""

5.Series对象本身及其索引都有一个name属性,  

    name的作用: 区分,在DataFrame中用于区分,在DataFrame中是列名

s1.name = '元素'
print(s1)  # 然后就会有Name属性
""" 结果:金     1.0木    26.0水     NaN火     NaNName: 元素, dtype: float64
"""

在运算中自动对齐不同索引的数据
如果索引不对应,则补NaN
    注意:要想保留所有的index,则需要使用.add()函数

Series的运算

1.可以进行加减乘除    (直接利用加减乘除符号进行运算时,Nan是不会进行加减乘除的)

print(s1 + 10)
"""
金    11.0
木    36.0
水     NaN
火     NaN
Name: 元素, dtype: float64
"""

2.  使用add()方法,参数fill_value,    如果在进行加减乘除运算的时候,有NaN的值,

    那么fill_value默认会将NaN设置为= 后面的值

print(s1.add(10,fill_value=0))  # fill_value=0把NaN设置为0
"""
金    11.0
木    36.0
水    10.0
火    10.0
Name: 元素, dtype: float64
"""

 3.Series之间进行运算

---  在运算中自动对齐不同索引的数据        Series最重要的特征是有索引值

   --- 如果索引对应,,在进行相加时,索引相同进行相加
   ---  如果索引不对应,则补NaN
                             注意:要想保留所有的index,则需要使用.add()函数

from pandas import Seriess1 = Series([2, 4, 7, 9], index=[0, 1, 2, 3])
s2 = Series([1, 2, 3, 4], index=[2, 3, 4, 5])
# 索引不对应
print(s1 + s2)
"""0     NaN1     NaN2     8.03    11.04     NaN5     NaNdtype: float64
"""
# 保留所有的引用,即连个索引取并集
# fill_value: 有空即填充等号后面的值
print(s1.add(s2,fill_value=0))
"""0     2.01     4.02     8.03    11.04     3.05     4.0dtype: float64
"""

Series数据有空值(None)时,是可以的进行相加的

Pandas的学习(2.Series的索引和切片、基本概念以及Series的运算)相关推荐

  1. Pandas-时间序列(二)-索引及切片:TimeSeries是Series的一个子类,所以Series索引及数据选取方面的方法基本一样【TimeSeries通过时间序列有更便捷的方法做索引和切片】

    一.索引 时间序列标签索引,支持各种时间字符串,以及datetime.datetime 时间序列由于按照时间先后排序,故不用考虑顺序问题 索引方法同样适用于Dataframe import numpy ...

  2. dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...

    一.为什么学习pandas numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类 ...

  3. Pandas 基础 (3)—— 重新索引

    1. 重新索引 Pandas 对象的一个重要方法是 reindex,其作用是创建一个适应新索引的新对象. In [1]: from pandas import Series, DataFrameIn ...

  4. 06 pandas回顾 文件的读取read_excel、索引与切片(loc、iloc)、过滤、删除、级联、映射、排序、分组 的详细例子

    pandas回顾 1 文件的读取 索引与切片 文章目录 pandas回顾 1 文件的读取 索引与切片 显式访问 隐式访问 pandas回顾 2 合并与级联 总结· pandas回顾 3 数据处理 过滤 ...

  5. Pandas两重山之Series(索引)

    Pandas概述 本文属于[基础不牢,地动山摇]系列文章,介绍Pandas的Series的概念及索引方式. 每个Pythoner都听说过Pandas,Pandas库的建立理念是:快速.强大.灵活.易用 ...

  6. pandas中访问使用多个索引的Series

    data = pd.Series(np.random.randn(9),\index=[['a','a','a','b','b','b','c','c','c'],[1,2,3,1,2,3,1,2,3 ...

  7. Python科学计算之Pandas基础学习

    Python科学计算之Pandas基础学习 导入Pandas 我们首先要导入我们的演出明星--Pandas. 这是导入Pandas的标准方式.显然,我们不希望每时每刻都在程序中写'pandas',但是 ...

  8. 使用python pandas dataframe学习数据分析

    ⚠️ Note - This post is a part of Learning data analysis with python series. If you haven't read the ...

  9. Python 数据分析三剑客之 Pandas(二):Index 索引对象以及各种索引操作

    CSDN 课程推荐:<迈向数据科学家:带你玩转Python数据分析>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python ...

最新文章

  1. [Android] ListView关于adapter多种view设置
  2. Mac下如何显示隐藏文件/文件夹
  3. 研究之路的秘密花园-个人经验分享-台湾朝阳科技大学陈金铃教授
  4. 实例解析Java class文件格式
  5. MySQL学习笔记_3_MySQL创建数据表(中)
  6. Vue-cli 3.0+ 设置接口代理 设置vue.config.js的配置项
  7. express学习 - (1)环境配置与第一个express项目
  8. 哥廷根大学计算机博士,德国哥廷根大学 单分子光学 招博士 (75% TV-L E13 工资)...
  9. 微型计算机自动化控制专业,自动化专业简介
  10. 运用极域电子教室控制其他学生端(不需要教师端)
  11. Java中Scanner的进阶---求和与求平均数
  12. Reverse Engineering the NC ECU (revisited) -- SH7508
  13. 2021中国大数据企业50强
  14. 网信耕耘十余载,金融安全3.0时代的缔造者
  15. Python项目实战:各种小说姓名生成器
  16. cannot resolve xxx 解决方法
  17. 深入理解Android相机体系结构之二
  18. 后端 学习 前端 Vue 框架基础知识
  19. 不定积分、定积分的区别与联系
  20. eclipse如何写python_(怎么用eclipse写python)python eclipse 使用教程

热门文章

  1. JPA中实现查询list
  2. MyBatis Plus Generator——基于Velocity的Controller参考模板(集成MyBatis Plus、Swagger2、自封装Response、分页)
  3. 正式版Android P,喜大普奔!一加6正式推送Android P正式版
  4. spark sql 1.2.0 测试
  5. HTML 中表单form 的相关知识
  6. Android NDK学习笔记6:异常处理
  7. 限制EditText 输入的字节数
  8. Java基础知识——异常Throwable和Exception
  9. 利用Runtime修改UIdatePicker的字体颜色
  10. 【LeetCode】3.无重复字符串的最长子串