Pandas的学习(2.Series的索引和切片、基本概念以及Series的运算)
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的运算)相关推荐
- Pandas-时间序列(二)-索引及切片:TimeSeries是Series的一个子类,所以Series索引及数据选取方面的方法基本一样【TimeSeries通过时间序列有更便捷的方法做索引和切片】
一.索引 时间序列标签索引,支持各种时间字符串,以及datetime.datetime 时间序列由于按照时间先后排序,故不用考虑顺序问题 索引方法同样适用于Dataframe import numpy ...
- dataframe两个表合并_Part25:Pandas基础(Series,DataFrame类的创建、索引、切片、算术方法)...
一.为什么学习pandas numpy已经可以帮助我们进行数据的处理了,那么学习pandas的目的是什么呢? numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类 ...
- Pandas 基础 (3)—— 重新索引
1. 重新索引 Pandas 对象的一个重要方法是 reindex,其作用是创建一个适应新索引的新对象. In [1]: from pandas import Series, DataFrameIn ...
- 06 pandas回顾 文件的读取read_excel、索引与切片(loc、iloc)、过滤、删除、级联、映射、排序、分组 的详细例子
pandas回顾 1 文件的读取 索引与切片 文章目录 pandas回顾 1 文件的读取 索引与切片 显式访问 隐式访问 pandas回顾 2 合并与级联 总结· pandas回顾 3 数据处理 过滤 ...
- Pandas两重山之Series(索引)
Pandas概述 本文属于[基础不牢,地动山摇]系列文章,介绍Pandas的Series的概念及索引方式. 每个Pythoner都听说过Pandas,Pandas库的建立理念是:快速.强大.灵活.易用 ...
- 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 ...
- Python科学计算之Pandas基础学习
Python科学计算之Pandas基础学习 导入Pandas 我们首先要导入我们的演出明星--Pandas. 这是导入Pandas的标准方式.显然,我们不希望每时每刻都在程序中写'pandas',但是 ...
- 使用python pandas dataframe学习数据分析
⚠️ Note - This post is a part of Learning data analysis with python series. If you haven't read the ...
- Python 数据分析三剑客之 Pandas(二):Index 索引对象以及各种索引操作
CSDN 课程推荐:<迈向数据科学家:带你玩转Python数据分析>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python ...
最新文章
- [Android] ListView关于adapter多种view设置
- Mac下如何显示隐藏文件/文件夹
- 研究之路的秘密花园-个人经验分享-台湾朝阳科技大学陈金铃教授
- 实例解析Java class文件格式
- MySQL学习笔记_3_MySQL创建数据表(中)
- Vue-cli 3.0+ 设置接口代理 设置vue.config.js的配置项
- express学习 - (1)环境配置与第一个express项目
- 哥廷根大学计算机博士,德国哥廷根大学 单分子光学 招博士 (75% TV-L E13 工资)...
- 微型计算机自动化控制专业,自动化专业简介
- 运用极域电子教室控制其他学生端(不需要教师端)
- Java中Scanner的进阶---求和与求平均数
- Reverse Engineering the NC ECU (revisited) -- SH7508
- 2021中国大数据企业50强
- 网信耕耘十余载,金融安全3.0时代的缔造者
- Python项目实战:各种小说姓名生成器
- cannot resolve xxx 解决方法
- 深入理解Android相机体系结构之二
- 后端 学习 前端 Vue 框架基础知识
- 不定积分、定积分的区别与联系
- eclipse如何写python_(怎么用eclipse写python)python eclipse 使用教程
热门文章
- JPA中实现查询list
- MyBatis Plus Generator——基于Velocity的Controller参考模板(集成MyBatis Plus、Swagger2、自封装Response、分页)
- 正式版Android P,喜大普奔!一加6正式推送Android P正式版
- spark sql 1.2.0 测试
- HTML 中表单form 的相关知识
- Android NDK学习笔记6:异常处理
- 限制EditText 输入的字节数
- Java基础知识——异常Throwable和Exception
- 利用Runtime修改UIdatePicker的字体颜色
- 【LeetCode】3.无重复字符串的最长子串