Saltar al contenido

Cómo encontrar los N valores mínimos superiores del DataFrame, Python-3

Nuestro grupo de trabajo ha estado largas horas buscando para darle solución a tus preguntas, te ofrecemos la resolución por eso deseamos que resulte de gran ayuda.

Solución:

Puedes hacer uso de nsmallest(..) [pandas-doc]:

df.nsmallest(2, 'Age')

Para los datos de muestra dados, esto nos da:

>>> df.nsmallest(2, 'Age')
  Name  Age
0    A   18
4    E   23

O si solo necesita el valor de la Age columna:

>>> df['Age'].nsmallest(2)
0    18
4    23
Name: Age, dtype: int64

o puede envolverlo en una lista:

>>> df['Age'].nsmallest(2).to_list()
[18, 23]

Puedes obtener el norte pequeñísimo único valores, construyendo primero un Series con valores únicos:

>>> pd.Series(df['Age'].unique()).nsmallest(2)
0    18
4    23
dtype: int64
>>> df['Age'].drop_duplicates().nsmallest(2)
0    18
4    23
Name: Age, dtype: int64

Lo correcto es usar nsmallestaquí muestro otra forma: DataFrame.sort_values + DataFrame.head

df['Age'].sort_values().head(2).tolist()
#[18, 23]

ACTUALIZADO

Si hay duplicadospodríamos usar Series.drop_duplicates previamente:

df['Age'].drop_duplicates().nsmallest(2).tolist()
#df['Age'].drop_duplicates().sort_values().head(2).tolist()
#[18, 23]

o np.sort + np.unique

[*np.sort(df['Age'].unique())[:2]]
#[18, 23]

Recuerda que tienes autorización de añadir una puntuación certera si descubriste tu traba justo a tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *