本文主要是介绍DataFrame.iloc()与DataFrame.loc的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
示例数据df1:A B C D E
0 0.299199 0.076892 1.378794 -1.607846 -0.763427
1 -0.061252 1.336151 -1.788529 -0.370140 -1.486368
2 0.665735 -0.233112 -0.485747 -1.321832 -0.083957
3 -0.319322 -0.756146 -0.997257 0.556998 -0.292198示例数据df2:A B C D E
a 0.299199 0.076892 1.378794 -1.607846 -0.763427
b -0.061252 1.336151 -1.788529 -0.370140 -1.486368
c 0.665735 -0.233112 -0.485747 -1.321832 -0.083957
d -0.319322 -0.756146 -0.997257 0.556998 -0.292198示例数据df3:A B C D E F
0 0.299199 0.076892 1.378794 -1.607846 -0.763427
1 -0.061252 1.336151 -1.788529 -0.370140 -1.486368
2 0.665735 -0.233112 130.000000 -1.321832 -0.083957
3 -0.319322 -0.756146 -0.997257 0.556998 -0.292198
备注: df1与df2唯一的区别在于它们的行索引不同iloc与loc的共同点
1. 均可以用来访问DataFrae对象的行数据.eg:访问第3行第3列的元素# way-1. 使用iloc: 访问df1 : df1.iloc[2]['C'] or df1.iloc[2,2]访问df2 : df1.iloc[2]['C'] or df1.iloc[2,2]# way-2. 使用loc:访问df1 : df1.loc[2, 'C']访问df2 : df2.loc['c', 'C']iloc与loc的不同点
1. 使用iloc时,行索引始终是df对象行的序数(eg:0,1,2,...,n-1),列索引可以是df对应列的列名,也可以是列的序数(eg:0,1,2,...,n-1); 使用loc时,行列索引必须与df保持一致;因此,如果仅仅是访问数据,iloc更加灵活.2. 当向df对象中新加入一列,其元素为空字符串时[目的是占位], 不可通过iloc来进行赋值,使用loc则可以.# way -1. 使用iloc [无法赋值]df3.iloc[2, 'F'] = 100SettingWithCopyWarning : A value is trying to be set on a copy of a slice from a DataFrame# way -2. 使用locdf3.loc[2, 'F'] = 100得到如下结果:A B C D E F0 0.299199 0.076892 1.378794 -1.607846 -0.763427 1 -0.061252 1.336151 -1.788529 -0.370140 -1.486368 2 0.665735 -0.233112 130.000000 -1.321832 -0.083957 1003 -0.319322 -0.756146 -0.997257 0.556998 -0.292198 # 备注当向df对象加入新的列时,如果对应元素的需要在后期才能确定,应该先将其初始化为None,这样使用iloc和loc均可以在后期为新列中的元素赋值3.在处理大批量数据时,如果需要先向df对象插入空列,在后期再填充空列中对应位置的元素,应优先考虑使用loc而不是iloc,因为前者的访问速度比后者快几十倍!!!
原文链接:https://blog.csdn.net/on_theway10/article/details/87166605
这篇关于DataFrame.iloc()与DataFrame.loc的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!