D3V*_*LPR 11 python series dataframe pandas
我正试图获得我所拥有的系列中第6项的索引.
这就是头部的样子
United States 1.536434e+13
China 6.348609e+12
Japan 5.542208e+12
Germany 3.493025e+12
France 2.681725e+12
Run Code Online (Sandbox Code Playgroud)
为获得第6个索引名称(排序后的第6个国家/地区),我通常使用s.head(6)并从那里获得第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
Run Code Online (Sandbox Code Playgroud)
看着这个,我得到的指数是英国.
那么,有没有更好的方法来获得除此之外的索引.而且,对于数据框,是否有任何函数在排序后根据相应的列获得第6个索引.
如果它是数据框,我通常排序,创建一个名为index的新列,并使用reset_index,然后使用iloc属性获得第6个(因为,它将在重置后使用索引中的范围).
有没有更好的方法使用pd.Series和pd.DataFrame执行此操作.
谢谢.
piR*_*red 25
你可以直接从索引中得到它
s.index[5]
Run Code Online (Sandbox Code Playgroud)
要么
s.index.values[5]
Run Code Online (Sandbox Code Playgroud)
这一切都取决于你的考虑better.我可以告诉你,一种numpy方法可能会更快.
例如. numpy.argsort返回一个数组,其中数组中的第一个元素是要排序的数组中应该是第一个的位置.argsort返回数组中的第二个元素是要排序的数组中元素的位置,应该是第二个.等等等等.
因此,您可以执行此操作以在排序后获取第6个项目的索引值.
s.index.values[s.values.argsort()[5]]
Run Code Online (Sandbox Code Playgroud)
或者更透明
s.sort_values().index[5]
Run Code Online (Sandbox Code Playgroud)
或者更有创意
s.nsmallest(6).idxmax()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23176 次 |
| 最近记录: |