pandas目录

1 简介

  重置索引(reindex)可以更改原 DataFrame 的行标签或列标签,并使更改后的行、列标签与 DataFrame 中的数据逐一匹配。通过重置索引操作,您可以完成对现有数据的重新排序。如果重置的索引标签在原 DataFrame 中不存在,那么该标签对应的元素值将全部填充为 NaN

2 重置行列标签

  选取特定行、列

  示例:先构建数据

index = ['Firefox', 'Chrome', 'Safari', 'IE10', 'Konqueror']
df = pd.DataFrame({'http_status': [200, 200, 404, 404, 301],
'response_time': [0.04, 0.02, 0.07, 0.08, 1.0]},
index=index)
df

  输出结果:

http_status	response_time
Firefox 200 0.04
Chrome 200 0.02
Safari 404 0.07
IE10 404 0.08
Konqueror 301 1.00

  示例:同时使用行、列标签选取数据。

new_index = ['Firefox', 'IE10', 'Safari']
df.reindex(index=new_index,columns=['response_time'])

  输出结果:

response_time
Firefox 0.04
IE10 0.08
Safari 0.07

  示例:只使用行标签选取数据。

new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10',
'Chrome']
df.reindex(new_index)

  输出结果:不存在的行使用 NaN 代替。

http_status	response_time
Safari 404.0 0.07
Iceweasel NaN NaN
Comodo Dragon NaN NaN
IE10 404.0 0.08
Chrome 200.0 0.02

  现有 a、b 两个 DataFrame 对象,如果想让 的行索引与 b 相同,您可以使用 reindex_like() 方法。

  示例如下:

a = pd.DataFrame(np.arange(6).reshape((2,3)),columns=['col1','col2','col3'])
b = pd.DataFrame(np.arange(12).reshape((4,3)),columns=['col1','col2','col3'])
a.reindex_like(b)

  输出结果:由于 a 的 size 小于 b ,所以 2 、3行不存在,用 NaN 代替。

col1	col2	col3
0 0.0 1.0 2.0
1 3.0 4.0 5.0
2 NaN NaN NaN
3 NaN NaN NaN

  示例

b.reindex_like(a)

  输出结果:

col1	col2	col3
0 0 1 2
1 3 4 5

3 填充元素值

  reindex_like()  提供了一个可选的参数 method,使用它来填充相应的元素值,参数值介绍如下:

  • pad/ffill:向前填充值;
  • bfill/backfill:向后填充值;
  • nearest:从距离最近的索引值开始填充。

  示例

a.reindex_like(b,method='ffill')

  输出结果:相当于从有数据的最后一行复制数据到下面的每一行。

col1	col2	col3
0 0 1 2
1 3 4 5
2 3 4 5
3 3 4 5

  示例:

a.reindex_like(b,method='bfill')

  输出结果:相当于从最后一行复制数据到上面的行。

	col1	col2	col3
0 0.0 1.0 2.0
1 3.0 4.0 5.0
2 NaN NaN NaN
3 NaN NaN NaN

  示例:

a.reindex_like(b,method='nearest')

  输出结果:

	col1	col2	col3
0 0 1 2
1 3 4 5
2 3 4 5
3 3 4 5

4 限制填充行数

  reindex_like()  还提供了一个额外参数 limit,该参数用来控制填充的最大行数。

  示例如下:

a.reindex_like(b,method='ffill',limit=1)

  输出结果:这里只填充了 1 行。

col1	col2	col3
0 0.0 1.0 2.0
1 3.0 4.0 5.0
2 3.0 4.0 5.0
3 NaN NaN NaN

5 重命名标签

  rename() 方法允许您使用某些映射 (dict或Series) 或任意函数来对行、列标签重新命名。

  原始数据:df1 =

col1	col2	col3
0 0 1 2
1 3 4 5

  示例如下:

df1.rename(columns={'col1':'c1','col2':'c2','col3':'c3'},index={0:'A',1:'B'})

  输出结果:

          c1        c2	c3
A 0 1 2
B 3 4 5

  rename() 方法提供了一个 inplace 参数,默认值为 False,表示拷贝一份原数据,并在复制后的数据上做重命名操作。若 inplace=True 则表示在原数据的基础上重命名。

Lesson8——Pandas reindex重置索引的更多相关文章

  1. Pandas基本功能之reindex重新索引

    重新索引 reindex重置索引,如果索引值不存在,就引入缺失值 参数介绍 参数 说明 index 用作索引的新序列 method 插值 fill_vlaue 引入缺失值时的替代NaN limit 最 ...

  2. pandas重置索引的几种方法探究

    pandas重置索引的几种方法探究 reset_index() reindex() set_index() 函数名字看起来非常有趣吧! 不仅如此. 需要探究. http://nbviewer.jupy ...

  3. 【pandas】pandas.DataFrame.rename()---重置索引名称

    官方文档 github地址 例子: 创建DataFrame ### 导入模块 import numpy as np import pandas as pd import matplotlib.pypl ...

  4. Pandas | 08 重建索引

    重新索引会更改DataFrame的行标签和列标签. 可以通过索引来实现多个操作: 重新排序现有数据以匹配一组新的标签. 在没有标签数据的标签位置插入缺失值(NA)标记. import pandas a ...

  5. pandas基础用法——索引

    # -*- coding: utf-8 -*- # Time : 2016/11/28 15:14 # Author : XiaoDeng # version : python3.5 # Softwa ...

  6. pandas中层次化索引与切片

    Pandas层次化索引 1. 创建多层索引 隐式索引: 常见的方式是给dataframe构造函数的index参数传递两个或是多个数组 Series也可以创建多层索引 Series多层索引 B =Ser ...

  7. pandas 之 时间序列索引

    import numpy as np import pandas as pd 引入 A basic kind of time series object in pandas is a Series i ...

  8. pandas 之 多层索引

    In many applications, data may be spread across a number of files or datasets or be arranged in a fo ...

  9. REINDEX - 重建索引

    SYNOPSIS REINDEX { DATABASE | TABLE | INDEX } name [ FORCE ] DESCRIPTION 描述 REINDEX 基于存储在表上的数据重建索引, ...

随机推荐

  1. 1632 B君的连通

    B国拥有n个城市,其交通系统呈树状结构,即任意两个城市存在且仅存在一条交通线将其连接.A国是B国的敌国企图秘密发射导弹打击B国的交通线,现假设每条交通线都有50%的概率被炸毁,B国希望知道在被炸毁之后 ...

  2. 1067 - Combinations

    1067 - Combinations   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Giv ...

  3. 家用路由器也能充当Web服务器?路由器插件开发心得

    起因 最近刚刚结束考研,开始有时间写文章了.在复习的时候中,经常忍不住折腾各种东西,于是有一天看中了我手上的华为路由器.什么?华为路由器,你可能有这样的疑问,华为路由器不是自研的芯片吗,就像我手上这台 ...

  4. 第十五个知识点:RSA-OAEP和ECIES的密钥生成,加密和解密

    第十五个知识点:RSA-OAEP和ECIES的密钥生成,加密和解密 1.RSA-OAEP RSA-OAEP是RSA加密方案和OAEP填充方案的同时使用.现实世界中它们同时使用.(这里介绍的只是&quo ...

  5. EBGAN

    目录 概 主要内容 Zhao J., Mathieu M. & LeCun Y. Energy-based generative adversarial networks. ICLR, 201 ...

  6. Optimization Landscape and Expressivity of DeepCNNs

    目录 引 主要内容 基本的一些定义 卷积层 全连接层 池化层 改写卷积层 假设2.4 引理2.5 假设3.1 假设3.2 引理3.3 定理3.4 定理3.5 推论3.6 假设4.1 引理4.2 引理4 ...

  7. [源码解析] PyTorch 分布式之弹性训练(7)---节点变化

    [源码解析] PyTorch 分布式之弹性训练(7)---节点变化 目录 [源码解析] PyTorch 分布式之弹性训练(7)---节点变化 0x00 摘要 0x01 变化方式 1.1 Scale-d ...

  8. 美和易思 · 「云农职互联网技术学院」HTML+CSS 做西普尼金表官网

    假期作业,好久没碰了,代码写得很烂......写博客纯属记录! 源代码下载地址:https://download.csdn.net/download/weixin_44893902/12805555 ...

  9. Python_关于python2的encode(编码)和decode(解码)的使用

    在使用Python2时,我们习惯于在文件开头声明编码 # coding: utf-8 不然在文件中出现中文,运行时就会报错 SyntaxError: Non-ASCII character... 之类 ...

  10. quasar框架在store中使用router跳转页面报错

    网上一通百度,终于在这篇博客中找到原因.  https://www.cnblogs.com/remly/p/12995936.html 原因是: 在router中导出了一个工厂函数, 既然是一个函数, ...