选择在熊猫中已定义列的最小值和最大值的行

问题描述 投票:0回答:2

我有以下数据框:

A,B,C,D   
10,1,2,3
 1,4,7,3
10,5,2,3
40,7,9,3
9,9,9,9

我想从前一个数据帧开始创建另一个只有两行的数据帧。这两行的选择基于“ A”列中的最小值和最大值。我想得到:

A,B,C,D   
 1,4,7,3
40,7,9,3

您认为我应该使用某种index.min e index.max,然后仅选择两行,然后追加到新的数据框中吗?您还有其他建议吗?

感谢您的任何帮助,最佳

python pandas select max min
2个回答
2
投票

IIUC,您可以简单地以ORdf.A.min()上具有df.A.max()条件的数据帧为子集:

df = df[(df.A==df.A.min())|(df.A==df.A.max())]

df
    A   B   C   D
1   1   4   7   3
3   40  7   9   3

1
投票

是,您可以使用idxmin/idxmax,然后使用loc

df.loc[df['A'].agg(['idxmin','idxmax']) ]

输出:

    A  B  C  D   
1   1  4  7  3
3  40  7  9  3

请注意,这只给最小行一行,最大给一行。如果需要所有值,则应使用@CHRD的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.