팬더 데이터 프레임의 숫자 열에서 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
팬더 데이터 프레임의 숫자 열에서 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
당신은 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
또는. 본질적으로 여기서 완전히 다른 두 가지 작업을 수행하고 있습니다.
감사합니다. 인덱스 값을 얻는 좋은 방법이 있습니까? –
@ KrzysztofSłowiński 오신 것을 환영합니다. 내 대답을 편집했습니다. –
@COLDSPEED 거기에 하나의 n 번째 최대/최소 행만 반환하는 방법이나 nlargest/nsmallest를 사용하여 마지막 행을 가져 오는 방법이 있습니까? –
DF =
AB 0 3.0 1.0 1 2.0 4.0 2 4.0 2.0 3 1.0 3.0df.nlargest (3 ', A') = 2.0
df.nsmallest (2, 'b') = 2.0
이 작업은 단일 작업으로는 불가능합니다. 별도의 작업은 괜찮습니까? –