Pandas排序后索引重置与访问方法解析
本文探讨Pandas中DataFrame排序后索引保持原值的问题,详细解析了.loc按标签索引与.iloc按位置索引的区别。通过具体代码示例说明排序后如何正确获取数据,并指出.iloc访问时需使用整数位置而非列名的注意事项,帮助开发者避免常见索引错误。
以下代码展示了相关操作过程:
In [1]: import pandas as pd
...: df=pd.DataFrame({"a":[1,2,3,4,5],"b":[5,4,3,2,1]})
In [2]: df
Out[2]:
a b
0 1 5
1 2 4
2 3 3
3 4 2
4 5 1
In [3]: df=df.sort_values(by="b") # 按照b列排序
In [4]: df
Out[4]:
a b
4 5 1
3 4 2
2 3 3
1 2 4
0 1 5
In [5]: df.loc[0,:] # 按索引来索引所以得到了是排序末位
Out[5]:
a 1
b 5
Name: 0, dtype: int64
In [6]: df.iloc[0,:] # 按照绝对的索引来索引,所以得到了第一位
Out[6]:
a 5
b 1
Name: 4, dtype: int64
In [7]: df.iloc[0,"b"] # 因为是绝对位置,所以列的参数不能是列名
ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types
In [8]: df.iloc[0,1] # “b”列的绝对位置是1,所以这就是索引了“b”列
Out[8]: 1
In [9]: df.iloc[0,:]["b"] # 和上述方法是一样的,不过这个更加容易懂一些
Out[9]: 1
以上就是对Pandas排序后索引问题的详细解析,希望能为读者提供实用参考,欢迎持续关注获取更多技术分享。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









