2017-12-29 58 views
1

팬더 데이터 프레임의 숫자 열에서 n 번째 최소값과 n 번째 최대 값을 얻는 권장 방법은 무엇입니까? 예를 들어 a에서 세 번째로 큰 값이고 b에서 두 번째로 작은 값입니다.팬덤 데이터 프레임의 n 번째 최대 값/최소값 추출

 a b 
0 3.0 1.0 
1 2.0 4.0 
2 4.0 2.0 
3 1.0 3.0 
+0

이 작업은 단일 작업으로는 불가능합니다. 별도의 작업은 괜찮습니까? –

답변

1

당신은 nlargest/nsmallest 사용할 수 있습니다 -

-

df  
    a b 
0 3.0 1.0 
1 2.0 4.0 
2 4.0 2.0 
3 1.0 3.0 
df.a.nlargest(3).iloc[-1] 
2.0 

또는

df.a.nlargest(3).iloc[[-1]] 

1 2.0 
Name: a, dtype: float64 

그리고 b에 관해서 작업의 종류는 벡터화 할 수 없습니다 - 여기

df.b.nsmallest(2).iloc[[-1]] 

2 2.0 
Name: b, dtype: float64 

빠른 관찰

df.b.nsmallest(2).iloc[-1] 
2.0 

또는. 본질적으로 여기서 완전히 다른 두 가지 작업을 수행하고 있습니다.

+0

감사합니다. 인덱스 값을 얻는 좋은 방법이 있습니까? –

+0

@ KrzysztofSłowiński 오신 것을 환영합니다. 내 대답을 편집했습니다. –

+0

@COLDSPEED 거기에 하나의 n 번째 최대/최소 행만 반환하는 방법이나 nlargest/nsmallest를 사용하여 마지막 행을 가져 오는 방법이 있습니까? –

0

DF =
AB 0 3.0 1.0 1 2.0 4.0 2 4.0 2.0 3 1.0 3.0

df.nlargest (3 ', A') = 2.0

df.nsmallest (2, 'b') = 2.0