python科学计算之Pandas使用(二)
阅读大概需要3分钟
作者老齐
编辑 zenRRan
链接 http://wiki.jikexueyuan.com/project/start-learning-python/311.html
Pandas 是基于 NumPy 的一个非常好用的库,正如名字一样,人见人爱。之所以如此,就在于不论是读取、处理数据,用它都非常简单。昨天介绍了 最常见的Pandas数据类型Series的使用,今天讲的Pandas的另一个最常见的数据类型DataFrame的使用。
DataFrame
DataFrame 是一种二维的数据结构,非常接近于电子表格或者类似 mysql 数据库的形式。它的竖行称之为 columns,横行跟前面的 Series 一样,称之为 index,也就是说可以通过 columns 和 index 来确定一个主句的位置。(有人把 DataFrame 翻译为“数据框”,是不是还可以称之为“筐”呢?向里面装数据嘛。)
下面的演示,是在 Python 交互模式下进行,读者仍然可以在 ipython notebook 环境中测试。
这是定义一个 DataFrame 对象的常用方法——使用 dict 定义。字典的“键”("name","marks","price")就是 DataFrame 的 columns 的值(名称),字典中每个“键”的“值”是一个列表,它们就是那一竖列中的具体填充数据。上面的定义中没有确定索引,所以,按照惯例(Series 中已经形成的惯例)就是从 0 开始的整数。从上面的结果中很明显表示出来,这就是一个二维的数据结构(类似 excel 或者 mysql 中的查看效果)。
上面的数据显示中,columns 的顺序没有规定,就如同字典中键的顺序一样,但是在 DataFrame 中,columns 跟字典键相比,有一个明显不同,就是其顺序可以被规定,向下面这样做:
跟 Series 类似的,DataFrame 数据的索引也能够自定义。
报错了。这个报错信息就太不友好了,也没有提供什么线索。这就是交互模式的不利之处。修改之,错误在于 index 的值——列表——的数据项多了一个,data 中是三行,这里给出了四个项(['a','b','c','d'])。
读者还要注意观察上面的显示结果。因为在定义 f3 的时候,columns 的参数中,比以往多了一项('debt'),但是这项在 data 这个字典中并没有,所以 debt 这一竖列的值都是空的,在 Pandas 中,空就用 NaN 来代表了。
定义 DataFrame 的方法,除了上面的之外,还可以使用“字典套字典”的方式。
在字典中就规定好数列名称(第一层键)和每横行索引(第二层字典键)以及对应的数据(第二层字典值),也就是在字典中规定好了每个数据格子中的数据,没有规定的都是空。
如果额外确定了索引,就如同上面显示一样,除非在字典中有相应的索引内容,否则都是 NaN。
前面定义了 DataFrame 数据(可以通过两种方法),它也是一种对象类型,比如变量 f3 引用了一个对象,它的类型是 DataFrame。承接以前的思维方法:对象有属性和方法。
DataFrame 对象的 columns 属性,能够显示素有的 columns 名称。并且,还能用下面类似字典的方式,得到某竖列的全部内容(当然包含索引):
这是什么?这其实就是一个 Series,或者说,可以将 DataFrame 理解为是有一个一个的 Series 组成的。
一直耿耿于怀没有数值的那一列,下面的操作是统一给那一列赋值:
除了能够统一赋值之外,还能够“点对点”添加数值,结合前面的 Series,既然 DataFrame 对象的每竖列都是一个 Series 对象,那么可以先定义一个 Series 对象,然后把它放到 DataFrame 对象中。如下:
将 Series 对象(sdebt 变量所引用) 赋给 f3['debt']列,Pandas 的一个重要特性——自动对齐——在这里起做用了,在 Series 中,只有两个索引("a","c"),它们将和 DataFrame 中的索引自动对齐。于是乎:
自动对齐之后,没有被复制的依然保持 NaN。
还可以更精准的修改数据吗?当然可以,完全仿照字典的操作:
这些操作是不是都不陌生呀,这就是 Pandas 中的两种数据对象。
每日托福单词
paradigm n.典范,范例
periphery n. 外围,边缘
terrestrial adj.地球的,陆地的
glucose n. 葡萄糖
bronze n. 青铜
推荐阅读:
精彩知识回顾
python科学计算之Pandas使用(一)
深度学习之激活函数详解
深度学习之卷积神经网络CNN理论与实践详解
深度学习之RNN、LSTM及正向反向传播原理
TreeLSTM Sentiment Classification
一分钟搞懂的算法之BPE算法
【干货】神经网络SRU
基于attention的seq2seq机器翻译实践详解
【干货】基于注意力机制的seq2seq网络
【干货】GRU神经网络
欢迎关注深度学习自然语言处理公众号,我会每天更新自己在科研学习路上的一点一滴!再小的人也有自己的品牌!期待和你一起进步!
长按识别二维码
python科学计算之Pandas使用(二)相关推荐
- Python科学计算之Pandas基础学习
Python科学计算之Pandas基础学习 导入Pandas 我们首先要导入我们的演出明星--Pandas. 这是导入Pandas的标准方式.显然,我们不希望每时每刻都在程序中写'pandas',但是 ...
- 【A-003】python数据分析与机器学习实战 Python科学计算库 Pandas数据分析处理库(二)
目录: 处理缺失数据制作透视图删除含空数据的行和列多行索引使用apply函数 本节要处理的数据来自于泰坦尼克号的生存者名单,它的数据如下: PassengerId Survived Pclass .. ...
- python科学计算笔记(十二)pandas的resample采样
降采样:高频数据到低频数据 升采样:低频数据到高频数据 主要函数:resample()(pandas对象都会有这个方法) resample方法的参数 参数 说明 freq 表示重采样频率,例如'M'. ...
- Python科学计算:Pandas
Pandas 提供的基础数据结构 DataFrame 与 json 的契合度很高,转换起来就很方便.如果说,在 NumPy 中数据结构是围绕 ndarray 展开的,那么在 Pandas 中就有Ser ...
- 005.python科学计算库pandas(下)
测试数据 fandango_score_comparison.csv series import pandas as pd from pandas import Seriesfandango = pd ...
- 004.python科学计算库pandas(中)
测试数据 titanic_train.csv isnull import pandastitanic_survival = pandas.read_csv("titanic_train.cs ...
- Python科学计算之Pandas merge函数操作
文章目录 Merge函数 Merge介绍 Merge操作 Merge函数 Merge介绍 pandas中的merge()函数类似于SQL中join的用法,可以将不同数据集依照某些字段(属性)进行合并操 ...
- Python科学计算库 — Pandas数学统计方法
首先导入pandas库 import numpy as np import pandas as pd Pandas 常用的数学统计方法如下表: 方法 说明 count 计算非NA值的数量 descri ...
- AI算法工程师 | 03人工智能基础-Python科学计算和可视化(三)Pandas
文章目录 Python 之 数据处理分析模块 Pandas 一.Pandas 开发环境搭建 二.Pandas 数据类型 1. Series 对象创建 2. DataFrame 对象创建 3. 获取 S ...
- python科学计算基础教程pdf下载-Python科学计算基础教程_PDF电子书
因资源下载地址容易失效,请加微信号359049049直接领取,直接发最新下载地址. 前言 ======================================================= ...
最新文章
- 【jquery仿datalist的一个问题,求助】——设置每行显示几列,块状DIV的解决办法...
- 【控制】《自动控制原理》胡寿松老师-第7章-线性离散系统的分析与校正
- stm32之 GPIO_Remap_SWJ_Disable之后无法使用swd下载 程序解决方法
- 桑文锋的数据“长征”
- c语言开发环境 推荐,C语言复习和VC++6.0开发环境推荐.ppt
- Qt下简单的文件读取
- 风铃发卡网源码-可商用,支持个人码支付,当面付
- 安卓学习笔记12:安卓按键事件
- LeetCode(463)——岛屿的周长(JavaScript)
- mysql 利用延迟关联优化查询(select * from your_table order by id desc limit 2000000,20)
- HTC G14解锁S-OFF、刷机、获取ROOT权限
- python求一元三次方程的根_一元高次方程寻根记杂谈
- (10.1.3.2)浅谈扁平化设计—– keep it simple
- 图片大小如何调整到10k?图片压缩到指定大小怎么弄?
- 非功能性需求都包括哪些方面?
- micropython-SPI通讯
- 1.Cocos跑酷游戏——List工具篇
- 极狐阿尔法 S 华为公司自动驾驶体验:100 分鐘无对接,体验类似人工操作
- 玩转可视化图表之矩形树图
- [CERC2014] Outer space invaders