我有以下数据框:
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,然后仅选择两行并追加,然后追加到新的数据框中吗?您还有其他建议吗?
感谢您的任何帮助, 最好的
答案 0 :(得分:5)
IIUC,您可以简单地在OR
和df.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 :(得分: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的解决方案。