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 nsmallest
aquí 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)