Pandas之ReIndex重新索引的实现

约定:

import pandas as pd
import numpy as np

ReIndex重新索引

reindex()是pandas对象的一个重要方法,其作用是创建一个新索引的新对象。

一、对Series对象重新索引

se1=pd.Series([1,7,3,9],index=['d','c','a','f'])
se1

代码结果:

d    1
c    7
a    3
f    9
dtype: int64

调用reindex将会重新排序,缺失值则用NaN填补。

se2=se1.reindex(['a','b','c','d','e','f'])
se2

代码结果:

a    3.0
b    NaN
c    7.0
d    1.0
e    NaN
f    9.0
dtype: float64

传入method=” “重新索引时选择插值处理方式:

method='ffill'或'pad 前向填充

method='bfill'或'backfill 后向填充

se3=pd.Series(['blue','red','black'],index=[0,2,4])
se4=se3.reindex(range(6),method='ffill')
se4

代码结果:

0     blue
1     blue
2      red
3      red
4    black
5    black
dtype: object

二、对DataFrame对象重新索引

对于DataFrame对象,reindex能修改行索引和列索引。

df1=pd.DataFrame(np.arange(9).reshape(3,3),index=['a','c','d'],columns=['one','two','four'])
df1

代码结果:

one two four
a 0 1 2
c 3 4 5
d 6 7 8

默认对行索引重新排序

只传入一个序列不能重新排序列索引

df1.reindex(['a','b','c','d'])

代码结果:

one two four
a 0.0 1.0 2.0
b NaN NaN NaN
c 3.0 4.0 5.0
d 6.0 7.0 8.0
df1.reindex(index=['a','b','c','d'],columns=['one','two','three','four'])

代码结果:

one two three four
a 0.0 1.0 NaN 2.0
b NaN NaN NaN NaN
c 3.0 4.0 NaN 5.0
d 6.0 7.0 NaN 8.0

传入fill_value=n用n代替缺失值:

df1.reindex(index=['a','b','c','d'],columns=['one','two','three','four'],fill_value=100)

代码结果:

one two three four
a 0 1 100 2
b 100 100 100 100
c 3 4 100 5
d 6 7 100 8

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • pandas通过索引进行排序的示例

    如下所示: import pandas as pd df = pd.DataFrame([1, 2, 3, 4, 5], index=[10, 52, 24, 158, 112], columns=['S']) df.sort_index(inplace=True) print df 以上这篇pandas通过索引进行排序的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 浅谈pandas用groupby后对层级索引levels的处理方法

    层及索引levels,刚开始学习pandas的时候没有太多的操作关于groupby,仅仅是简单的count.sum.size等等,没有更深入的利用groupby后的数据进行处理.近来数据处理的时候有遇到这类问题花了一点时间,所以这里记录以及复习一下:(以下皆是个人实践后的理解) 我使用一个实例来讲解下面的问题:一张数据表中有三列(动物物种.物种品种.品种价格),选出每个物种从大到小品种的前两种,最后只需要品种和价格这两列. 以上这张表是我们后面需要处理的数据表 (物种 品种 价格) levels

  • pandas将DataFrame的列变成行索引的方法

    pandas提供了set_index方法可以将DataFrame的列(多列)变成行索引,通过reset_index方法可以将层次化索引的级别会被转移到列里面. 1.DataFrame的set_index方法 data = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b","c"],columns=["A","B","C"])

  • pandas重新生成索引的方法

    在数据处理的过程中,出现了这样的问题,筛选某些数据,出现索引从600多开始,但是我希望这行数据下标从0开始. 这个时候,我想到的是: df.reindex(range(length)) 但是查看一下数据之后,发现0-624之间的值全为Nan,显然不是我需要的数据. 最后找到了说明: pandas调用reindex方法后净会根据新索引进行重排,如果某个索引值当前不存在,就会引入 缺失值:可以通过fill_value参数填充默认值,也可以通过method参数设置填充方法: 感谢身边同事的帮助,找到了

  • python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)

    前言 最近在网上搜了许多关于pandas.DataFrame的操作说明,都是一些基础的操作,但是这些操作组合起来还是比较费时间去正确操作DataFrame,花了我挺长时间去调整BUG的.我在这里做一些总结,方便你我他.感兴趣的朋友们一起来看看吧. 一.创建DataFrame的简单操作: 1.根据字典创造: In [1]: import pandas as pd In [3]: aa={'one':[1,2,3],'two':[2,3,4],'three':[3,4,5]} In [4]: bb=

  • pandas实现选取特定索引的行

    如下所示: >>> import numpy as np >>> import pandas as pd >>> index=np.array([2,4,6,8,10]) >>> data=np.array([3,5,7,9,11]) >>> data=pd.DataFrame({'num':data},index=index) >>> print(data) num 2 3 4 5 6 7 8 9

  • pandas.dataframe按行索引表达式选取方法

    需要把一个从csv文件里读取来的数据集等距抽样分割,这里用到了列表表达式和dataframe.iloc 先生成索引列表: index_list = ['%d' %i for i in range(df.shape[0]) if i % 3 == 0] 在dataframe中选取 sample_df = df.iloc[index_list] 合起来 sample_df = df.iloc[['%d' %i for i in range(df.shape[0]) if i % 3 == 0]] 各

  • pandas带有重复索引操作方法

    有的时候,可能会遇到表格中出现重复的索引,在操作重复索引的时候可能要注意一些问题. 一.判断索引是否重复 a.Series索引重复判断 s = Series([1,2,3,4,5],index=["a","a","b","b","c"]) print(s.index.is_unique) #False Series.index.is_unique为False表示索引重复. b.DataFrame索引重复判断

  • Pandas之ReIndex重新索引的实现

    约定: import pandas as pd import numpy as np ReIndex重新索引 reindex()是pandas对象的一个重要方法,其作用是创建一个新索引的新对象. 一.对Series对象重新索引 se1=pd.Series([1,7,3,9],index=['d','c','a','f']) se1 代码结果: d    1 c    7 a    3 f    9 dtype: int64 调用reindex将会重新排序,缺失值则用NaN填补. se2=se1.

  • Pandas reindex重置索引的使用

    目录 重置行列标签 填充元素值 限制填充行数 重命名标签 重置索引(reindex)可以更改原 DataFrame 的行标签或列标签,并使更改后的行.列标签与 DataFrame 中的数据逐一匹配.通过重置索引操作,您可以完成对现有数据的重新排序.如果重置的索引标签在原 DataFrame 中不存在,那么该标签对应的元素值将全部填充为 NaN. 重置行列标签 看一组简单示例: import pandas as pd import numpy as np N=20 df = pd.DataFram

  • pandas中DataFrame重置索引的几种方法

    在pandas中,经常对数据进行处理 而导致数据索引顺序混乱,从而影响数据读取.插入等. 小笔总结了以下几种重置索引的方法: import pandas as pd import numpy as np df = pd.DataFrame(np.arange(20).reshape((5, 4)),columns=['a', 'b', 'c', 'd']) #得到df: a b c d 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 3 12 13 14 15 4 16 17 1

  • 在Pandas中给多层索引降级的方法

    # 背景介绍 通常我们不会在Pandas中主动设置多层索引,但是如果一个字段做多个不同的聚合运算, 比如sum, max这样形成的Column Level是有层次的,这样阅读非常方便,但是对编程定位比较麻烦. # 数据准备 import pandas as pd import numpy as np df = pd.DataFrame(np.arange(0, 14).reshape(7,2),columns =['a','b'] ) df.a = df.a %3 df['who'] = 'Bo

  • Pandas的MultiIndex多层索引使用说明

    目录 MultiIndex多层索引 1.创建方式 1.1.第一种:多维数组 1.2.第二种:MultiIndex 2.多层索引操作 2.1.Series多层索引 2.2.DataFrame多层索引 2.3.交换索引 2.4.索引排序 2.5.索引堆叠 2.6.取消堆叠 2.7.设置索引 2.8.重置索引 MultiIndex多层索引 MultiIndex,即具有多个层次的索引,有些类似于根据索引进行分组的形式.通过多层次索引,我们就可以使用高层次的索引,来操作整个索引组的数据.通过给索引分类分组

  • Pandas中DataFrame的基本操作之重新索引讲解

    目录 Pandas DataFrame之重新索引 1.reindex可以对行和列索引 2.reindex插值处理 Pandas DataFrame重置索引案例 Pandas DataFrame之重新索引 1.reindex可以对行和列索引 默认对行索引,加上关键字columns对列索引. import pandas as pd data=[[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]] df = pd.DataFrame(data,index=['d','b',

随机推荐