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由索引和 ...
随机推荐
- composer更新命令及常用命令
原文地址:https://www.wjcms.net/archives/composer更新命令及常用命令 composer作为php的包依赖管理工具,开发者将开发的工具包上传,然后使用者能很方便的使 ...
- 来看下css边框阴影怎么设置?这些方法掌握后工作更轻松
我们在网页设计中,通常会使用ps工具来达到图片或者边框阴影.立体等效果.但是如果一些基础效果都需要用p图来完成那就显得效率比较低了.其实可以使用CSS来设置边框阴影,下面本篇文章来给大家介绍一下. 在 ...
- 开源导入导出库Magicodes.IE 多sheet导入教程
原文作者:tanyongzheng 多Sheet导入教程 说明 本教程主要说明如何使用Magicodes.IE.Excel完成多个Sheet数据的Excel导入. 要点 多个相同格式的Sheet数据导 ...
- day11 本日作业+周末作业
目录 一.今日作业 1.编写文件copy工具 2.编写登录程序,账号密码来自于文件 3.编写注册程序,账号密码来存入文件 二.周末综合作业: 1.编写用户登录接口 2.编写程序实现用户注册后,可以登录 ...
- JVM 专题九:运行时数据区(四)本地方法栈
1. 本地方法栈 2. 什么是本地方法栈? Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用 本地方法栈,也是线程私有的. 允许被实现成固定或者是可动态拓展的内存大小 ...
- java 面向对象(二十六):枚举类的使用
1. 枚举类的说明:* 1.枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类* 2.当需要定义一组常量时,强烈建议使用枚举类* 3.如果枚举类中只一个对象,则可以作为单例模式的实现方式. ...
- linux专题(七):账号管理
http://dwz.date/UDf 简介 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账 ...
- Python之迭代器、装饰器、软件开发规范
本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...
- MYSQL 使用基础 - 这么用就对了
这篇文章主要梳理了 SQL 的基础用法,会涉及到以下方面内容: SQL大小写的规范 数据库的类型以及适用场景 SELECT 的执行过程 WHERE 使用规范 MySQL 中常见函数 子查询分类 如何选 ...
- Ethical Hacking - GAINING ACCESS(8)
Server Side Attacks NeXpose - configure and launch a scan Configure and initialize the application. ...