Python 数据帧中数据的条件选择

Python 数据帧中数据的条件选择,python,pandas,dataframe,min,Python,Pandas,Dataframe,Min,我的数据框中有两列 A B 0 1 5 1 2 3 2 3 2 3 4 0 4 5 1 我需要A中的值,其中B的值最小。在上述情况下,我的答案是4,因为最小B值是0 有人能帮我吗?要在B列中找到最小值,可以使用df.B.min()。对于您的数据帧,它返回0 要查找数据帧中特定位置的值,可以使用loc: >>> df.loc[(df.B == df.B.min()), 'A'] 3 4 Name:

我的数据框中有两列

   A      B
0  1      5
1  2      3
2  3      2
3  4      0
4  5      1
我需要A中的值,其中B的值最小。在上述情况下,我的答案是4,因为最小B值是0


有人能帮我吗?

要在B列中找到最小值,可以使用
df.B.min()
。对于您的数据帧,它返回
0

要查找数据帧中特定位置的值,可以使用
loc

>>> df.loc[(df.B == df.B.min()), 'A']
3    4
Name: A, dtype: int64
因此,这里,
loc
选择列B等于其最小值的所有行(
df.B==df.B.min()
),并选择列A中的相应值

此方法返回A中与B中最小值对应的所有值。如果您只需要找到其中一个值,更好的方法是使用@aus_lacy建议的
idxmin

这里有一种方法:

b_min = df.B.idxmin()
a_val = df.A[b_min]
idxmin()
返回列
B
中最小值的索引。然后在列
A
中的同一索引中找到该值

或者,如果您想要一行,尽管可读性较差,您可以这样做:

a_val = df.A[df.B.idxmin()]
此外,作为免责声明,此解决方案假定列
B
中的最小值是唯一的。例如,如果您有一个如下所示的数据集:

A  B
1  2
2  5
3  0
4  3
5  0

我的解决方案将返回第一个实例,其中
B
的最小值位于第三行,并且对应的
a
值为
3
。如果您认为
B
的最小值不是唯一的,那么您应该使用@ajcr的解决方案。

不清楚您的表是什么样子的。请用可读的方式格式化。ryanyuyu…现在怎么样?是的,现在你的表格是可读的。如果列
B
中的最小值不是唯一的,则此解决方案比我的解决方案更好。为了保持简短的表示法,可能需要使用
df.A.loc[df.B==df.B.min()]