选择具有 pandas 中已定义列的最小值和最大值的行
selecting rows with min and max values of a defined column in pandas
我有以下数据框:
A,B,C,D
10,1,2,3
1,4,7,3
10,5,2,3
40,7,9,3
9,9,9,9
我想从前一个只有两行的数据框开始创建另一个数据框。这两行的selection是以"A"列中的最小值和最大值为准的。我想得到:
A,B,C,D
1,4,7,3
40,7,9,3
您认为我应该使用某种 index.min e index.max 然后 select 仅两行然后追加到新的数据框中吗?您还有其他相同的建议吗?
感谢您的帮助,
最佳
IIUC 您可以简单地在 df.A.min()
和 df.A.max()
:
上使用 OR
条件对数据帧进行子集化
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
是的,您可以使用 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 的解决方案。
我有以下数据框:
A,B,C,D
10,1,2,3
1,4,7,3
10,5,2,3
40,7,9,3
9,9,9,9
我想从前一个只有两行的数据框开始创建另一个数据框。这两行的selection是以"A"列中的最小值和最大值为准的。我想得到:
A,B,C,D
1,4,7,3
40,7,9,3
您认为我应该使用某种 index.min e index.max 然后 select 仅两行然后追加到新的数据框中吗?您还有其他相同的建议吗?
感谢您的帮助, 最佳
IIUC 您可以简单地在 df.A.min()
和 df.A.max()
:
OR
条件对数据帧进行子集化
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
是的,您可以使用 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 的解决方案。