ডেটা ফ্রেম, পাইথন -3 থেকে শীর্ষ এন ন্যূনতম মানগুলি কীভাবে সন্ধান করবেন


9

আমার ফিল্ড 'এজ' সহ ডেটাফ্রেমের নীচে রয়েছে, ডেটাফ্রেম থেকে সর্বোচ্চ 3 সর্বনিম্ন বয়সের সন্ধান করতে হবে

DF = pd.DataFrame.from_dict({'Name':['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'], 'Age':[18, 45, 35, 70, 23, 24, 50, 65, 18, 23]})

DF['Age'].min()  

শীর্ষ দুই বয়স অর্থাৎ 18, 23 তালিকায় চান, এটি কীভাবে অর্জন করবেন?

দ্রষ্টব্য: ডেটাফ্রেম - ডিএফ এর সাথে বয়সের ডুপ্লিকেট রয়েছে অর্থাৎ 18 এবং 23 বার পুনরাবৃত্তি করা হয়েছে, স্বতন্ত্র মান প্রয়োজন।

উত্তর:


14

আপনি nsmallest(..)[পান্ডাস-ডক] ব্যবহার করতে পারেন :

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]

প্রথমে অনন্য মূল্যবোধের সাথে একটি নির্মাণ করে আপনি n সবচেয়ে ছোট অনন্য মানগুলি পেতে পারেন 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

2
@ এসপিআই: আপনিও এটি ব্যবহার করতে পারেন df['Age'].nsmallest(2):)
উইলিম ভ্যান ওনসেম

3

সঠিক জিনিসটি ব্যবহার করা হয় 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+np.unique

[*np.sort(df['Age'].unique())[:2]]
#[18, 23]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.