我有一个包含两个数字列A和B的数据框。我想从列A的前5个值中查找并从列在前5个位置的列B中返回值。

非常感谢。

最佳答案

我认为需要DataFrame.nlargest前5行的列为A,然后选择列B

df = pd.DataFrame({'A':[4,5,26,43,54,36,18,7,8,9],
                   'B':range(10)})

print (df)
    A  B
0   4  0
1   5  1
2  26  2
3  43  3
4  54  4
5  36  5
6  18  6
7   7  7
8   8  8
9   9  9




print (df.nlargest(5, 'A'))
    A  B
4  54  4
3  43  3
5  36  5
2  26  2
6  18  6

a = df.nlargest(5, 'A')['B']
print (a)
4    4
3    3
5    5
2    2
6    6
Name: B, dtype: int64


排序的替代解决方案:

a = df.sort_values('A', ascending=False)['B'].head(5)
print (a)
4    4
3    3
5    5
2    2
6    6
Name: B, dtype: int64

关于python - Python数据框找到前5个索引,然后索引到另一列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50304103/

10-11 22:04