python - কিভাবে একটি কলাম থেকে পান্ডাস ডেটা ফ্রেম বাছাই




pandas sorting (3)

অন্য সমাধান হিসাবে:

আপনি আপনার স্ট্রিং ডেটা (মাসের নাম) শ্রেণিবদ্ধ করতে পারেন এবং এটি অনুসারে বাছাই করতে পারেন:

df.rename(columns={1:'month'},inplace=True)
df['month'] = pd.Categorical(df['month'],categories=['December','November','October','September','August','July','June','May','April','March','February','January'],ordered=True)
df = df.sort_values('month',ascending=False)

শ্রেণিবদ্ধ বস্তুটি তৈরি করার সময় আপনি যেমনটি বলেছিলেন তেমনই আপনাকে মাসের নাম অনুসারে ডেটা সাজানো হবে।

আমার কাছে এই জাতীয় ডেটা ফ্রেম রয়েছে:

print(df)

        0          1     2
0   354.7      April   4.0
1    55.4     August   8.0
2   176.5   December  12.0
3    95.5   February   2.0
4    85.6    January   1.0
5     152       July   7.0
6   238.7       June   6.0
7   104.8      March   3.0
8   283.5        May   5.0
9   278.8   November  11.0
10  249.6    October  10.0
11  212.7  September   9.0

আপনি দেখতে পাচ্ছেন, মাসগুলি ক্যালেন্ডার ক্রমে নেই। সুতরাং আমি প্রতি মাসে (1-12) মাসের সাথে সম্পর্কিত মাসের নম্বর পেতে দ্বিতীয় কলাম তৈরি করেছি। সেখান থেকে, আমি কীভাবে ক্যালেন্ডার মাসের ক্রম অনুসারে এই ডেটা ফ্রেমটিকে বাছাই করতে পারি?


আমি উপরের সমাধানগুলি চেষ্টা করেছি এবং আমি ফলাফল অর্জন করতে পারি না, তাই আমি একটি আলাদা সমাধান পেয়েছি যা আমার পক্ষে কাজ করে। আরোহী = মিথ্যা হ'ল ডেটাফ্রেমকে অবতরণ ক্রমে অর্ডার করা, ডিফল্টরূপে এটি সত্য । আমি পাইথন 3.6.6 এবং পান্ডাস 0.23.4 সংস্করণ ব্যবহার করছি।

final_df = df.sort_values(by=['2'], ascending=False)

আপনি পান্ডাস ডকুমেন্টেশনে আরও বিশদটি দেখতে পারেন here


নির্দিষ্ট কলামের মান অনুসারে df বাছাই করতে sort_values ব্যবহার করুন:

In [18]:
df.sort_values('2')

Out[18]:
        0          1     2
4    85.6    January   1.0
3    95.5   February   2.0
7   104.8      March   3.0
0   354.7      April   4.0
8   283.5        May   5.0
6   238.7       June   6.0
5   152.0       July   7.0
1    55.4     August   8.0
11  212.7  September   9.0
10  249.6    October  10.0
9   278.8   November  11.0
2   176.5   December  12.0

আপনি যদি দুটি কলাম অনুসারে বাছাই করতে চান, sort_values অগ্রাধিকার অনুসারে sort_values কলাম লেবেলের সাথে sort_values কলাম লেবেলের একটি তালিকা পাস করুন pass আপনি যদি df.sort_values(['2', '0']) তবে ফলাফলটি কলাম 2 পরে কলাম 0 অনুসারে বাছাই করা হবে। মঞ্জুর, এই উদাহরণটির জন্য এটি সত্যিকার অর্থে উপলব্ধি করে না কারণ df['2'] প্রতিটি মানই অনন্য।





sorting