本站消息

  本站每日ip已达10000,出租广告位,位置价格可谈,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

pandas中df.reindex()和df.set_index()方法之间的区别

发布于2019-09-11 14:17     阅读(83)     评论(0)     点赞(4)     收藏(4)


我很困惑,这很简单,但我没有立即在StackOverflow上找到答案:

  • df.set_index('xcol')使列'xcol'成为索引(当它是df列时)。

  • df.reindex(myList)但是,从数据框外部获取索引,例如,从myList我们在其他地方定义的名称列表中获取索引

我希望这篇文章澄清它!欢迎增加这篇文章!


解决方案


您可以在一个简单的示例中看到差异。让我们考虑一下这个数据帧:

df = pd.DataFrame({'a': [1, 2],'b': [3, 4]})
print (df)
   a  b
0  1  3
1  2  4

索引是0和1

如果您使用set_index列'a',那么索引是1和2.如果这样做df.set_index('a').loc[1,'b'],您将获得3。

现在,如果你想使用reindex相同的索引1和2,例如df.reindex([1,2]),你将获得4.0df.reindex([1,2]).loc[1,'b']

发生的事情set_index是用先前的索引(0,1)替换为(1,2)(列'a'的值),而不触及列'b'中的值的顺序

df.set_index('a')
   b
a   
1  3
2  4

reindex改变的索引,但保持在原来的DF关联索引列“B”的值

df.reindex(df.a.values).drop('a',1) # equivalent to df.reindex(df.a.values).drop('a',1)
     b
1  4.0
2  NaN
# drop('a',1) is just to not care about column a in my example

最后,reindex更改索引的顺序而不更改与每个索引关联的行的值,同时set_index将使用列的值更改索引,而不触及数据框中其他值的顺序



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/107254/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

4 0
收藏该文
已收藏

评论内容:(最多支持255个字符)