python-3.x - 有没有办法通过在该行的值中提供特定列来访问数据框的任何行?
问题描述
我必须访问“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 从0
排序列的第 5 个索引值开始计数,所以使用切片[4]
:
a = df.a.sort_values().index[4]
print (a)
3
如果值已经排序:
a = df.a.index[4]
print (a)
3