Python 如何获取pandas.Series或pandas.DataFrame中第i项的索引?

Python 如何获取pandas.Series或pandas.DataFrame中第i项的索引?,python,pandas,dataframe,series,Python,Pandas,Dataframe,Series,我正在尝试获取我拥有的系列中第6项的索引 这是头部的样子: United States 1.536434e+13 China 6.348609e+12 Japan 5.542208e+12 Germany 3.493025e+12 France 2.681725e+12 为了获得第六个索引名称(排序后的第六个国家),我通常使用s.head(6)并从那里获得第六个索引 s.head(6)给了我: United

我正在尝试获取我拥有的
系列中第6项的索引

这是头部的样子:

United States    1.536434e+13
China            6.348609e+12
Japan            5.542208e+12
Germany          3.493025e+12
France           2.681725e+12
为了获得第六个索引名称(排序后的第六个国家),我通常使用
s.head(6)
并从那里获得第六个索引

s.head(6)
给了我:

United States     1.536434e+13
China             6.348609e+12
Japan             5.542208e+12
Germany           3.493025e+12
France            2.681725e+12
United Kingdom    2.487907e+12
看看这个,我得到的指数是英国

那么,除了这个,还有什么更好的方法来获取索引吗?此外,对于数据帧,是否有任何函数可以在排序后根据相应列获取第6个索引

如果它是一个数据帧,我通常会进行排序,创建一个名为index的新列,并使用
reset\u index
,然后使用
iloc
属性获取第六个(因为它在重置后将使用索引中的一个范围)


使用
pd.Series
pd.DataFrame
有没有更好的方法来实现这一点?

您可以直接从索引中获得它

s.index[5]

这完全取决于你所考虑的代码>更好的< /代码>。我可以告诉你,
numpy
方法可能会更快

比如说
numpy.argsort
返回一个数组,其中数组中的第一个元素是要排序的数组中应该是第一个的位置。argsort的返回数组中的第二个元素是要排序的数组中的第二个元素的位置。诸如此类

因此,您可以这样做,以获得排序后第6项的索引值

s.index.values[s.values.argsort()[5]]
或者更透明

s.sort_values().index[5]
或者更具创造性

s.nsmallest(6).idxmax()
s.nsmallest(6).idxmax()