您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

df.reindex()和df.set_index()方法在熊猫中的区别

df.reindex()和df.set_index()方法在熊猫中的区别

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

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用(1,2)(“ a”列中的值)替换了先前的索引(0,1),而没有触及“ 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将使用列的值更改索引,而无需触及数据框中其他值的顺序

其他 2022/1/1 18:28:29 有600人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶