gpt4 book ai didi

python - 如何获取 pandas.Series 或 pandas.DataFrame 中第 i 个项目的索引?

转载 作者:太空狗 更新时间:2023-10-29 18:17:09 27 4
gpt4 key购买 nike

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

这是头部的样子:

United States    1.536434e+13
China 6.348609e+12
Japan 5.542208e+12
Germany 3.493025e+12
France 2.681725e+12

为了获取第 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

看看这个,我得到的索引是英国。

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

如果是dataframe,我通常会排序,创建一个名为index的新列,并使用reset_index,然后使用iloc属性获取第6个(因为它将在重置后使用索引中的范围)。

对于 pd.Seriespd.DataFrame 有更好的方法吗?

最佳答案

你可以直接从索引中得到它

s.index[5]

或者

s.index.values[5]

这完全取决于您认为什么更好。我可以告诉您,numpy 方法可能会更快。

例如。 numpy.argsort 返回一个数组,其中数组中的第一个元素是被排序数组中应该排在第一位的位置。 argsort 返回数组中的第二个元素是被排序数组中应该排在第二位的元素的位置。依此类推。

所以你可以这样做来获得排序后第 6 项的索引值。

s.index.values[s.values.argsort()[5]]

或者更透明

s.sort_values().index[5]

或者更有创意

s.nsmallest(6).idxmax()

关于python - 如何获取 pandas.Series 或 pandas.DataFrame 中第 i 个项目的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41273005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com