Answers:
您可以使用nsmallest(..)
[pandas-doc]:
df.nsmallest(2, 'Age')
对于给定的样本数据,这给我们:
>>> df.nsmallest(2, 'Age')
Name Age
0 A 18
4 E 23
或者,如果您只需要Age
列的值:
>>> df['Age'].nsmallest(2)
0 18
4 23
Name: Age, dtype: int64
或者您可以将其包装在列表中:
>>> df['Age'].nsmallest(2).to_list()
[18, 23]
您可以获取ñ最小的独特价值,首先构造一个Series
具有唯一值:
>>> 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
正确的方法是使用nsmallest
,这里我展示了另一种方式:DataFrame.sort_values
+DataFrame.head
df['Age'].sort_values().head(2).tolist()
#[18, 23]
更新
如果有重复项,我们可以Series.drop_duplicates
以前使用:
df['Age'].drop_duplicates().nsmallest(2).tolist()
#df['Age'].drop_duplicates().sort_values().head(2).tolist()
#[18, 23]
[*np.sort(df['Age'].unique())[:2]]
#[18, 23]
df['Age'].nsmallest(2)
它:)