pandas reindex,pandas重建索引
本文主要介绍使用Pandasreindex来重置索引,通过示例代码进行了非常详细的介绍。对大家的学习或工作都有一定的参考价值。有需要的朋友下面跟边肖学习。
00-1010重置行标签和列标签填充元素值限制填充行重命名标签重置索引(reindex)可以更改原始数据帧的行标签或列标签,并使更改后的行标签和列标签与数据帧中的数据一一匹配。通过重置索引,可以对现有数据进行重新排序。如果原始数据帧中不存在重置索引标签,则对应于该标签的元素值将全部用NaN填充。
目录
看一组简单的例子:
进口熊猫作为pd
将numpy作为np导入
N=20
df=pd。数据帧({
a : PD . date _ range(start= 2016-01-01 ,periods=N,freq=D ),
x: np.linspace(0,stop=N-1,num=N),
y: np.random.rand(N),
C: np.random.choice([低,中,高],N)。tolist(),
D: np.random.normal(100,10,size=(N))。tolist()
})
#重置行和列索引标签
df _ reindex=df . reindex(index=[0,2,5],columns=[A , C , B])
打印(df_reindexed)
输出结果:
甲乙丙丁
0 2020-12-07中型NaN
2 2020-12-09低喃
5高楠2020-12-12
有两个DataFrame对象A和B,如果希望A的行索引与B的行索引相同,可以使用reindex_like()方法。例子如下:
进口熊猫作为pd
将numpy作为np导入
a=pd。DataFrame(np.random.randn(10,3),columns=[col1 , col2 , col3])
b=pd。DataFrame(np.random.randn(7,3),columns=[col1 , col2 , col3])
a=a.reindex_like(b)
打印(一份)
输出结果:
列1列2列3
0 1.776556 -0.821724 -1.220195
1 -1.401443 0.317407 -0.663848
2 0.300353 -1.010991 0.939143
3 0.444041 -1.875384 0.846112
4 0.967159 0.369450 -0.414128
5 0.320863 -1.223477 -0.337110
6 -0.933665 0.909382 1.129481
在上面的例子中,A将以B的形式重建行索引,需要注意的是,A和B的列索引标签必须相同。
重置行列标签
Reindex_like()提供了一个可选的参数方法,用来填充相应的元素值。参数值描述如下:
Pad/ffill:向前填充值;
b fill/回填:回填值;
最近的:从最近的索引值填充。
例子如下:
进口熊猫作为pd
将numpy作为np导入
df1=pd。DataFrame(np。
random.randn(6,3),columns=[col1,col2,col3])
df2 = pd.DataFrame(np.random.randn(2,3),columns=[col1,col2,col3])
#使df2和df1行标签相同
print(df2.reindex_like(df1))
#向前填充
print(df2.reindex_like(df1,method=ffill))
输出结果:
#填充前
col1 col2 col3
0 0.129055 0.835440 0.383065
1 -0.357231 0.379293 1.211549
2 NaN NaN NaN
3 NaN NaN NaN
4 NaN NaN NaN
5 NaN NaN NaN
#填充后
col1 col2 col3
0 0.129055 0.835440 0.383065
1 -0.357231 0.379293 1.211549
2 -0.357231 0.379293 1.211549
3 -0.357231 0.379293 1.211549
4 -0.357231 0.379293 1.211549
5 -0.357231 0.379293 1.211549
限制填充行数
reindex_like() 还提供了一个额外参数 limit,该参数用来控制填充的最大行数。示例如下:
import pandas as pd
输出结果:
col1 col2 col3
0 -1.829469 0.310332 -2.008861
1 -1.038512 0.749333 -0.094335
2 NaN NaN NaN
3 NaN NaN NaN
4 NaN NaN NaN
5 NaN NaN NaN
col1 col2 col3
0 -1.829469 0.310332 -2.008861
1 -1.038512 0.749333 -0.094335
2 -1.038512 0.749333 -0.094335
3 -1.038512 0.749333 -0.094335
4 NaN NaN NaN
5 NaN NaN NaN
由上述示例可以看出,填充了 2、3 行 缺失值,也就是只填充了 2 行数据。
重命名标签
rename() 方法允许您使用某些映射(dict或Series)或任意函数来对行、列标签重新命名,示例如下:
import pandas as pd
输出结果:
col1 col2 col3
0 -1.762133 -0.636819 -0.309572
1 -0.093965 -0.924387 -2.031457
2 -1.231485 -0.738667 1.415724
3 -0.826322 0.206574 -0.731701
4 1.863816 -0.175705 0.491907
5 0.677361 0.870041 -0.636518
c1 c2 col3
apple -1.762133 -0.636819 -0.309572
banana -0.093965 -0.924387 -2.031457
durian -1.231485 -0.738667 1.415724
3 -0.826322 0.206574 -0.731701
4 1.863816 -0.175705 0.491907
5 0.677361 0.870041 -0.636518
rename() 方法提供了一个 inplace 参数,默认值为 False,表示拷贝一份原数据,并在复制后的数据上做重命名操作。若 inplace=True 则表示在原数据的基础上重命名。
到此这篇关于Pandas reindex重置索引的使用的文章就介绍到这了,更多相关Pandas reindex重置索引内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。