팬더 데이터 프레임에 두 개의 열이 있습니다.팬더 데이터 프레임의 조건부 선택
A B
0 1 5
1 2 3
2 3 2
3 4 0
4 5 1
B 값이 최소가되는 값이 필요합니다. 위의 경우 최소 B 값이 0이므로 내 대답은 4가됩니다.
아무도 도와 줄 수 있습니까?
팬더 데이터 프레임에 두 개의 열이 있습니다.팬더 데이터 프레임의 조건부 선택
A B
0 1 5
1 2 3
2 3 2
3 4 0
4 5 1
B 값이 최소가되는 값이 필요합니다. 위의 경우 최소 B 값이 0이므로 내 대답은 4가됩니다.
아무도 도와 줄 수 있습니까?
열 B에서 최소값을 찾으려면 df.B.min()
을 사용할 수 있습니다. DataFrame의 경우 0
을 반환합니다.
loc
사용할 수
>>> df.loc[(df.B == df.B.min()), 'A']
3 4
Name: A, dtype: int64
를 그래서 여기 loc
칼럼 B는 최소값 (df.B == df.B.min()
) 및 선택 같은지의 모든 행을 집어
이 방법은 B의 최소값에 해당하는 A의 모든 값을 반환합니다. 값 중 하나만 필요하면 더 좋은 방법은 @aus_lacy가 제안하는대로 idxmin
을 사용하는 것입니다.
b_min = df.B.idxmin()
a_val = df.A[b_min]
idxmin()
열 B
내에서 최소 값의 인덱스를 반환
에 맞게 설계되었습니다.이 솔루션은 B 열의 최소값이 고유하지 않은 경우 내 값으로 설정하십시오. –
단지 짧은 표기법을 지키기 위해서'df.A.loc [df.B == df.B.min()]' – fred
여기에 하나의 방법입니다. 그런 다음 동일한 인덱스의 값을 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
림 유유 ... 어때? –
예, 이제 테이블을 읽을 수 있습니다. – ryanyuyu