首页 > 解决方案 > 有没有办法通过在该行的值中提供特定列来访问数据框的任何行?

问题描述

我必须访问“a”列中存在的第 5 个最大值的索引。我对“a”列进行了排序,但在这样做的过程中,索引列也被排序了,所以我创建了另一个名为“索引”的列,并在该列中添加了 0-9 的值。现在,我想访问索引号。“索引”列的值为 4 的行。任何人都可以帮我这样做吗?我也想要一种更有效的方法来解决这个问题。

df = pd.DataFrame(np.random.randint(1, 30, 30).reshape(10,-1), columns=list('abc'))
df.sort_values('a',inplace=True)
df['Index']=[x for x in range(10)]
df

数据框:

    a   b   c   Index
1   1   25  5   0
2   3   28  8   1
8   6   10  2   2
4   7   22  24  3
3   11  3   15  4
7   12  17  18  5
0   19  11  28  6
6   19  21  28  7
9   25  2   5   8
5   26  16  27  9

预期输出:

3

标签: python-3.xpandas

解决方案


因为 python 从0排序列的第 5 个索引值开始计数,所以使用切片[4]

a = df.a.sort_values().index[4]
print (a)
3

如果值已经排序:

a = df.a.index[4]
print (a)
3   

推荐阅读