3-Pandas之Series和DataFrame区别
一、Pandas
pandas的数据元素包括以下几种类型:
类型 | 说明 |
object | 字符串或混合类型 |
int | 整型 |
float | 浮点型 |
datetime | 时间类型 |
bool | 布尔型 |
二、Series与DataFrame区别:
- Series是带索引的一维数组
- Series对象的两个重要属性是:index(索引)和value(数据值)
- DataFrame的任意一行或者一列就是一个Series对象
三、创建Series对象:pd.Series(data,index=index)
其中data可以是很多类型:
- 一个列表---------->pd.Series([1,2,3])
- 一个ndarray------->pd.Series(np.random.randint(2),index=['a','b'])
- 一个python字典---->pd.Series({"a":2,"b":0})
- 一个标量值-------->pd.Series(3,index=[1,2,3])
Series在算数运算中会自动对齐不同索引的数据:
例如:
>>> s=pd.Series([1,2,3],index=['a','b','c'])
>>> a=pd.Series([4,1,0],index=['b','a','c'])
>>> s+a
a 2
b 6
c 3
unique():返回结果是一个数组,包含Series去重后的元素
value_counts():查看每一个唯一元素的频数
四、创建DataFrame对象:pd.DataFrame(data,index,columns)
与Series不同的是,DataFrame包括索引index和表头columns:
其中data可以是很多类型:
- 包含列表、字典或者Series的字典
- 二维数组
- 一个Series对象
- 另一个DataFrame对象
例如:
1、从字典创建:
>>> d = {'one':pd.Series([1,2,3],index=['a','b','c']), 'two':pd.Series([2,3,4],index=['a','b','d'])}
>>> pd.DataFrame(d)
one two
a 1.0 2.0
b 2.0 3.0
c 3.0 NaN
d NaN 4.0
2、从字典创建
>>> pd.DataFrame(d,index=['a','b'],columns=['w1','w2'])
w1 w2
a NaN NaN
b NaN NaN
>>> pd.DataFrame(d,index=['a','b'],columns=['one','two'])
one two
a 1 2
b 2 3
五、DataFrame的数据筛选
与Series类似,可通过布尔表达式按照一定条件进行筛选。不同于Series的是,DataFrame布尔筛选返回的是满足筛选条件的样本的所有列的数据(即:一返回就是一条记录)。
上例子!
>>> d = {'one':pd.Series([1,2,3],index=['a','b','c']),'two':pd.Series([2,3,4],index=['a','b','d'])}
>>> pd.DataFrame(d)
>>> d[d['one']<3]
one two
a 1.0 2.0
b 2.0 3.0
六、DataFrame的删除和添加一列
添加一列:(1)像字典一样通过赋值的方式执行
>>> d['three']=d['one']+d['two']
(2)使用insert()在指定位置插入一列,例如在位置1插入新的一列'new',值为0
>>> d.insert(1,'new',np.zeros((4,1)))
>>> d
one new two three
a 1.0 0.0 2.0 3.0
b 2.0 0.0 3.0 5.0
c 3.0 0.0 NaN NaN
d NaN 0.0 4.0 NaN
删除一列:像字典一样------>使用pop()或者del(),pop()可以在删除列的基础之上将删除的列赋值给一个新的变量
>>> del d['three']
>>> d
one new two
a 1.0 0.0 2.0
b 2.0 0.0 3.0
c 3.0 0.0 NaN
d NaN 0.0 4.0
>>> new = d.pop('new')
>>> d
one two
a 1.0 2.0
b 2.0 3.0
c 3.0 NaN
d NaN 4.0
>>> new
a 0.0
b 0.0
c 0.0
d 0.0
Name: new, dtype: float64
六、DataFrame修改索引名:使用rename()方法
>>> d
one two
a 1.0 2.0
b 2.0 3.0
c 3.0 NaN
d NaN 4.0
>>> i = {'a':'A','b':'B'}
>>> d.rename(index=i)
one two
A 1.0 2.0
B 2.0 3.0
c 3.0 NaN
d NaN 4.0
3-Pandas之Series和DataFrame区别的更多相关文章
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- Python之Pandas中Series、DataFrame
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- Python之Pandas中Series、DataFrame实践
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- Pandas中Series和DataFrame的索引
在对Series对象和DataFrame对象进行索引的时候要明确这么一个概念:是使用下标进行索引,还是使用关键字进行索引.比如list进行索引的时候使用的是下标,而dict索引的时候使用的是关键字. ...
- 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作
一.reindex() 方法:重新索引 针对 Series 重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...
- pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- pandas学习series和dataframe基础
PANDAS 的使用 一.什么是pandas? 1.python Data Analysis Library 或pandas 是基于numpy的一种工具,该工具是为了解决数据分析人物而创建的. 2.p ...
- [Python] Pandas 中 Series 和 DataFrame 的用法笔记
目录 1. Series对象 自定义元素的行标签 使用Series对象定义基于字典创建数据结构 2. DataFrame对象 自定义行标签和列标签 使用DataFrame对象可以基于字典创建数据结构 ...
- pandas中series和dataframe之间的区别
series结构有索引,和列名组成,如果没有,那么程序会自动赋名为None series的索引名具有唯一性,索引可以数字和字符,系统会自动将他们转化为一个类型object. dataframe由索引和 ...
随机推荐
- python之os模块分类整理
OS模块简单介绍: 它是一个Python的系统编程的操作模块,可以处理文件和目录.比如查找文件或目录,对大量的路径与文件处理. 常用操作方法: os.name :指出当前你使用的操作平台,‘nt’代表 ...
- 收藏 | 14张思维导图-构建Python核心体系!Python语法总结!
今天在看Python时,ZOE的Python思维导图总结的很好,分享一下 链接: https://pan.baidu.com/s/1s6Gtptp-pJS0UliNeRIvjg 提取码: mrfz
- JS数据类型判断的几种方法
JS数据类型判断 JavaScript 中常见数据类型有Number.String.Boolean.Object.Array.Json.Function.Date.RegExp.Error.undef ...
- 常用API - 包装类、System类
包装类 概述 Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率. 然而很多情况,会创建对象使用,因为对象可以做更多的功能. 如果想要我们的基本类型像对象一样操作,就可以使用基本类型 ...
- POJ 3263 Tallest Cow 题解
题目 FJ's \(N (1 ≤ N ≤ 10,000)\) cows conveniently indexed 1..N are standing in a line. Each cow has a ...
- 数学计算 LibreOJ - 2573
题目描述 小豆现在有一个数 x ,初始值为 1 . 小豆有 Q 次操作,操作有两种类型: 1 m: x=x×m ,输出 xmodM : 2 pos: x=x/ 第 pos 次操作所乘的数(保证第 po ...
- 二叉树的镜像(剑指offer-18)
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 解析 先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子节点, 当交换完所有的非叶子结点的左右子结点之后,就得到了树的镜像 ...
- postman-7-前置请求脚本
前面讲了,tests初如何校验请求之后返回值是否正确 那前置脚本,就是处理,请求之前接口该如何处理,什么时候会用到呢? 比如:接口字段time,需要填入时间,而且这个是需要当前时间的,: 需要达到自动 ...
- 基层教师 - CMD命令之net命令与IPC连接
1)建立空连接: net use \\IP\ipc$ "" /user:"" (一定要注意:这一行命令中包含了3个空格) 2)建立非空连接: net use \ ...
- .NET Core微服务开发网关篇-ocelot
通过上篇我们知道,网关是外部访问的统一入口,本文采用Ocelot作为Api网关. 环境要求: vs2019 .NetCore3.1 Ocelot16.0.1 创建一个产品服务Api站点(AAStore ...