文档章节

关于Pandas库中reindex函数填充选项ffill和bfill的一个有趣的实验。

睿松
 睿松
发布于 2017/04/27 11:09
字数 492
阅读 1492
收藏 0
d
Out[9]: 
    同比     城市     环比
b1  120.7    beijing  101.5
b2  127.3   shanghai  101.2
b3  119.4  guangzhou  101.3
b4  140.9   shenzhen  102.0
b5  101.4   shenyang  100.1
 
 
d1=dd.index.insert(3,'c1')
 
d1
Out[24]: Index(['b1', 'b2', 'b3', 'c1', 'b4', 'b5'], dtype='object'
 
dd1=d.reindex(index=d1,columns=d.columns,method='ffill')
dd1
Out[27]: 
       同比         城市     环比
b1  120.7    beijing  101.5
b2  127.3   shanghai  101.2
b3  119.4  guangzhou  101.3
c1  101.4   shenyang  100.1
b4  140.9   shenzhen  102.0
b5  101.4   shenyang  100.1
 
dd2=d.reindex(index=d1,columns=d.columns,method='bfill')
 
dd2
Out[29]: 
       同比         城市     环比
b1  120.7    beijing  101.5
b2  127.3   shanghai  101.2
b3  119.4  guangzhou  101.3
c1    NaN        NaN    NaN
b4  140.9   shenzhen  102.0
b5  101.4   shenyang  100.1

自己在试验reindex的bfill和ffill选项时,觉得填充的内容很有意思。

如果像我代码里dd1那样进行ffill前向填充,c1位置上会选取最后一个位置b5上的元素来填充,而不是靠近它的b4;

而dd2选取后向填充时,则选取b5位置后的元素填充,b5位置为NaN的空行,则c1位置填充的内容也为空行。

觉得这个现象还蛮有意思,因为自己的脑海里会认为c1会选取就近的b3或者b4位置的元素来进行填充,但是实际上不是。

如果插入索引不在原有的索引的中间,那么插入的元素就跟其插入位置的前或者后的元素有关;但是要是元素插在了中间,那么应用填充选项时其内容给原有索引首位置或者尾位置的元素的值有关。

关于具体的reindex函数的用法,大家可以用自带的help函数查看下,里边的讲解和关于填充的示例也都很有意思。

不知道我说的对不对,欢迎大家一起来试验下。
 

© 著作权归作者所有

睿松
粉丝 0
博文 15
码字总数 4524
作品 0
海淀
程序员
私信 提问
Python数据分析工具库-pandas 数据分析与探索工具(一)

pandas是基于numpy的一个高级数据结构和操作的数据分析与探索工具,本文基于pandas API文档对pandas的两个重要的数据结构、基本函数、函数应用、排序以及层次化索引进行分析,对于本文的示例...

损失函数
2018/05/29
0
0
Pandas入门(一)

文章同载于我的博客:http://www.viljw1557.cn pandas的数据结构介绍 我们将使用下面的方式导入pandas: Series Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一...

Viljw
2018/01/12
0
0
Python数据分析之pandas基本功能讲解

pandas的基本功能 重新索引 不存在的索引都用同一个值填充: obj.reindex(['a','b','c','d','e'],fill_value=0)out:a -5.3b 7.2C 3.6d 4.5e 0.0 如果没有fill_value则不存在的索引用NaN缺失值......

zou249014591的博客
2017/12/13
0
0
利用Python进行数据分析(六)之pandas基本功能

pandas的基本功能 重新索引 不存在的索引都用同一个值填充: 对于有序索引,range(6)或者['a','b','c','d','e','f']。 用前向值填充:method =‘ffill’或者method = 'pad' 前面没有则NaN 用......

BrainZou
2017/12/12
0
0
pandas入门03---pandas基本功能

01 重建索引 reindex是pandas对象的重要方法。该方法用于创建一个符合新索引的新对象。 import pandas as pd obj = pd.Series([4.5, 7.2, -5.3, 3.6],index=['d','b','a','c'])print(obj) S......

筠初
09/05
17
0

没有更多内容

加载失败,请刷新页面

加载更多

web前端开发高级

前端高效开发框架技术与应用 Vue 基础 Vue 框架简介 MVX 模式介绍 Vue 框架概述 如何使用 Vue.js 基础语法 实例对象 生命周期 模板语法 计算属性 Methods 方法 渲染 列表渲染 条件渲染 事件与...

达达前端小酒馆
39分钟前
6
0
PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
21
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
5
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部