'''
Pandas数据结构Series:基本概念及创建
"一维数组"Serise
'''
import numpy as np
import pandas as pd
import  time
# Series 数据结构
# Series 是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,Python对象等),轴标签统称为索引
# 导入numpy、pandas模块
s=pd.Series(np.random.rand(5))
#查看数据,数据类型
print(s)
print(type(s))
# .index查看series索引,类型为rangeindex
# .values查看series值,类型是ndarray
print(s.index,type(s.index))
print(s.values,type(s.values))
# 核心:series相比于ndarray,是一个自带索引index的数组 → 一维数组 + 对应索引
# 所以当只看series的值的时候,就是一个ndarray
# series和ndarray较相似,索引切片功能差别不大
# series和dict相比,series更像一个有顺序的字典(dict本身不存在顺序),其索引原理与字典相似(一个用key,一个用index)
print("========创建series三中方法=========")
#由字典创建,字典的key就是index,values就是values
dic={"a":"1","b":"2","c":"3","d":"4"}
s=pd.Series(dic)
print(s)
# 注意:key肯定是字符串,假如values类型不止一个会怎么样? → dic = {'a':1 ,'b':'hello' , 'c':3, '4':4, '5':5}
# Series 创建方法二:由数组创建(一维数组)
arr=np.random.rand(5)
s=pd.Series(arr)
print(s)
# 默认index是从0开始,步长为1的数字
s=pd.Series(arr,index=['a','b','c','d','e'])
print(s)
# Series 创建方法三:由标量创建
s=pd.Series(10,index=range(4))
print(s)
# 如果data是标量值,则必须提供索引。该值会重复,来匹配索引的长度
# Series 名称属性:name
s1=pd.Series(np.random.randn(5))
print(s1)
print("====================")
s2=pd.Series(np.random.randn(5),name="test")
print(s2)
print(s1.name,s2.name,type(s2.name))
print("====================")
#name为Series的一个参数,创建一个数组的 名称
# .name方法:输出数组的名称,输出格式为str,如果没用定义输出名称,输出为None
s3=s2.rename("hehehe")
print(s3)
print(s3.name,s2.name)
# .rename()重命名一个数组的名称,并且新指向一个数组,原数组不变
#rand()和randn()的区别
#rand():随机样本位于[0, 1)中
#randn():标准正态分布中返回一个或多个样本值。
'''
Pandas数据结构Series:索引
位置下标 / 标签索引 / 切片索引 / 布尔型索引
'''
print("=======Pandas数据结构Series:索引=======")
s=pd.Series(np.random.rand(5))
print(s)
print(s[0],type(s[0]),s[0].dtype)
print(float(s[0]),type(float(s[0])))
# print(s[-1])
# 位置下标从0开始
# 输出结果为numpy.float格式,
# 可以通过float()函数转换为python float格式
# numpy.float与float占用字节不同
# s[-1]结果如何?
print("======索引切片========")
s1=pd.Series(np.random.rand(5))
print(s1)
s2=pd.Series(np.random.rand(5))
print(s2)
print(s1[1:4],s1[4])
# 注意:用index做切片是末端包含
print(s2[0:3],s2[3])
print("===================")
print(s2[:-1])
print(s2[::2])
# 下标索引做切片,和list写法一样print("=========布尔型索引======")
s=pd.Series(np.random.rand(3)*100)
s[4]=None  #添加一个空值
print(s)
bs1=s>50
bs2=s.isnull()
bs3=s.notnull()
print(bs1,type(bs1),bs1.dtype)
print(bs2,type(bs2),bs2.dtype)
print(bs3,type(bs3),bs3.dtype)
# 数组做判断之后,返回的是一个由布尔值组成的新的数组
# .isnull() / .notnull() 判断是否为空值 (None代表空值,NaN代表有问题的数值,两个都会识别为空值)
print(s[s>50])
print(s[bs3])
# 布尔型索引方法:用[判断条件]表示,其中判断条件可以是 一个语句,或者是 一个布尔型数组!
print("============= Pandas数据结构Series:基本技巧====================")
'''
Pandas数据结构Series:基本技巧
数据查看 / 重新索引 / 对齐 / 添加、修改、删除值
'''
#查看数组
s=pd.Series(np.random.rand(50))
# .head()查看头部数据
# .tail()查看尾部数据
# 默认查看5条
print(s.tail(10))
print(s.head())
print("============# 重新索引reindex==============")
# .reindex将会根据索引重新排序,如果当前索引不存在,则引入缺失值
s=pd.Series(np.random.rand(3),index=['a','b','c'])
print(s)
# .reindex()中也是写列表
# 这里'd'索引不存在,所以值为NaN
s1=s.reindex(['a','b','c','d'])
print(s1)
# fill_value参数:填充缺失值的值
s2=s.reindex(['a','b','c','d'],fill_value=0)
print(s2)
print("========Series对齐==========")
s1=pd.Series(np.random.rand(3),index=['Jack','Marry', 'Tom'])
s2=pd.Series(np.random.rand(3),index=['Jack','Marry', 'Tom'])
print(s1)
print(s2)
print(s1+s2)
# Series 和 ndarray 之间的主要区别是,Series 上的操作会根据标签自动对齐
# index顺序不会影响数值计算,以标签来计算
# 空值和任何值计算结果扔为空值
print("=======#删除:drop==========")
s=pd.Series(np.random.rand(5),index=list('ngjur'))
print(s)
s1=s.drop('n')
s2=s.drop(['g','j'])
print(s1)
print(s2)
print(s)
# drop 删除元素之后返回副本(inplace=False)
print("========添加=======")
s1=pd.Series(np.random.rand(5))
s2=pd.Series(np.random.rand(5),index=list("ngjur"))
print(s1)
print(s2)
s1[5]=100
s2['a']=100
print(s1)
print(s2)
print("================")# 直接通过下标索引/标签index添加值
s3=s1.append(s2)
print(s3)
# 通过.append方法,直接添加一个数组
# .append方法生成一个新的数组,不改变之前的数组
print("=======修改======")
s=pd.Series(np.random.rand(3),index=['a','b','c'])
print(s)

pandas之Series()菜鸟教程相关推荐

  1. python菜鸟教程官网pandas,python菜鸟教程官网numpy

    求比较好的Python练习网站 适合 Python 入门学习的5个网站1. Python官方网站最权威的 Python 教程.2. 菜鸟教程 Python 教程基本入门级教程,还有一些简单的进阶教程. ...

  2. 菜鸟教程python3-Python数据分析,学习路径拆解及资源推荐

    原标题:Python数据分析,学习路径拆解及资源推荐 关于Python数据分析,其实网上能够找到的学习资源很多,主要分为两类: 一类是提供各种资源的推荐,比如书单.教程.以及学习的先后顺序: 另一类是 ...

  3. Python 数据分析三剑客之 Pandas(一):认识 Pandas 及其 Series、DataFrame 对象

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

  4. 超级简单的Python爬虫教程,python爬虫菜鸟教程官网

    毫无基础的人如何入门 Python ? Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编 ...

  5. python爬虫菜鸟教程-Python数据分析,学习路径拆解及资源推荐

    原标题:Python数据分析,学习路径拆解及资源推荐 关于Python数据分析,其实网上能够找到的学习资源很多,主要分为两类: 一类是提供各种资源的推荐,比如书单.教程.以及学习的先后顺序: 另一类是 ...

  6. Markdown菜鸟教程

    Markdown菜鸟教程 Author:Yuan's Q 目录 [TOC] 一.字体.格式类 1.1字体与颜色设置 浅红色文字:<font color="#dd0000"&g ...

  7. python scrapy菜鸟教程_scrapy学习笔记(一)快速入门

    安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. pip install sc ...

  8. pandas 遍历 series

    pandas 遍历 series from pandas import Series index1 = ['01', '02', '03', '04', '05', '06'] data1 = ['小 ...

  9. JS实例学习笔记——w3cschool+菜鸟教程

    基础实例--w3cschool write() document.write("this is a string");//生成普通文本 document.write("& ...

  10. dataframe python格式_python3.6 pandas,Series和DataFrame基础格式与用法,附代码实例

    pandas 是基于numpy构建的库,加上numpy,主要用于科学运算和数据处理. 也是一个让我忘记昂贵的MATLAB,并且不得不复习SQL的库.. 一般引入规定: In [105]: from p ...

最新文章

  1. DevOps的工程化
  2. LVS TUN模式搭建
  3. JMeter重要知识点汇总
  4. char *a 与 char a[] 的区别
  5. oracle 存储过程字符替换,Oracle存储过程常用字符串处理函数整理
  6. 虚拟机下Ubuntu共享主机文件(Ubuntu、VMware、共享) .
  7. 理解lua中的metatable和__index
  8. 20155330 第十一周课堂练习(20170503)
  9. 解决办法:error: 'size_t' does not name a type、unknown type name 'size_t'
  10. python pycharm 无法import win32api、win32con、win32com、win32gui 问题一次解决!方法合集
  11. MAC提示“因为它来自身份不明的开发者” 或“已损坏,打不开“怎么办?
  12. 第一章:Django介绍
  13. 全志V3s IIC控制器驱动分析
  14. 职称论文发表时怎么选择期刊
  15. 3d可视化建模产品三维展示平台应用广
  16. 收藏一些非常不错的学习资源
  17. 湖北专升本MySQL复习(MySQL数据库实用教程)——MySQL数据表的操作
  18. 怎样学好Python
  19. DTOJ #5981
  20. 取消检验批过账(决策)

热门文章

  1. linux 异步信号的同步处理方式
  2. (Ios 实战) 自定义UITableView
  3. 26.go test
  4. 134. PHP 工具
  5. 8.configurable product
  6. 48. Element isSupported() 方法
  7. 3. 盒子模型与兼容性
  8. 第3讲 zend原理剖析
  9. Windows系统命令整理-Win10
  10. python课堂整理1