পান্ডসে মাল্টি ইনডেক্স বাছাই


88

আমার কাছে একটি পান্ডাস ডিএফ-তে মাল্টি-ইনডেক্স কলামগুলির সাথে একটি ডেটাসেট রয়েছে যা আমি একটি নির্দিষ্ট কলামে মান অনুসারে বাছাই করতে চাই। আমি সারণিডেক্স এবং বাছাই করার চেষ্টা করেছি কিন্তু আমি যে ফলাফলগুলি খুঁজছি তা পেতে সক্ষম হইনি। আমার ডেটাসেটটি এমন দেখাচ্ছে:

    Group1    Group2
    A B C     A B C
1   1 0 3     2 5 7
2   5 6 9     1 0 0
3   7 0 2     0 3 5 

আমি গ্রুপ 1 তে কলাম সি অনুসারে সমস্ত ডেটা এবং সূচীটিকে উত্থিত ক্রমে সাজিয়ে রাখতে চাই যাতে আমার ফলাফলগুলি দেখতে দেখতে:

    Group1    Group2
    A B C     A B C
 2  5 6 9     1 0 0
 1  1 0 3     2 5 7
 3  7 0 2     0 3 5 

আমার ডেটা যে কাঠামোতে আছে সেটির সাথে এই সাজানো কি সম্ভব, বা আমাকে গ্রুপ 1 সূচীর পাশে অদলবদল করা উচিত?

উত্তর:


131

মাল্টিআইএনডেক্স অনুসারে বাছাই করার সময় আপনাকে তালিকার ভিতরে কলামটি বর্ণনা করে টিপল থাকতে হবে *:

In [11]: df.sort_values([('Group1', 'C')], ascending=False)
Out[11]: 
  Group1       Group2      
       A  B  C      A  B  C
2      5  6  9      1  0  0
1      1  0  3      2  5  7
3      7  0  2      0  3  5

* যাতে পান্ডসকে এই ভেবে বিভ্রান্ত না করে যে আপনি গ্রুপ 1 এর পরে প্রথমে সি দ্বারা বাছাই করতে চান


দ্রষ্টব্য: মূলত .sortঅবহেলিত হওয়ার পরে ব্যবহৃত হয়েছে তারপরে 0.20 এ সরানো হয়েছে .sort_values


ধন্যবাদ, আমি ঠিক যা খুঁজছিলাম
ম্যাটবি

এইচএমএফএফ আমার চেয়ে দ্রুত এবং বুট করার আরও ভাল সমাধান।
ডিএসএম

4
ঠিক আমার যা দরকার, ধন্যবাদ। এটি দস্তাবেজগুলি থেকে পরিষ্কার ছিল না (কমপক্ষে আমি এটি খুঁজে পাইনি)। এছাড়াও, যখন শুধুমাত্র উপরের স্তর সংজ্ঞা ত্রুটি বার্তা বিভ্রান্তিকর হল: Cannot sort by duplicate column X
ডাঃ জানু-ফিলিপ গেহর্কেকে

আমাদের কেন একটি তালিকা ব্যবহার করতে হবে তার ব্যাখ্যা যোগ করার জন্য অতিরিক্ত কৃতজ্ঞতা। আমি আশা করি পান্ডস টিপল বনাম তালিকার সন্ধান করতে পারে এবং একটি স্তম্ভকে একটি কলাম নির্বাচন করে কলামের তালিকা হিসাবে ব্যাখ্যা করবে ...
কৌশিক ঘোষ

6
@ কৌশিকগোস যে শব্দটি মনে করছেন এটি একটি ভাল বৈশিষ্ট্যের অনুরোধ হতে পারে , আমার ধারণা আপনি লোক ব্যবহার করতে পারেন:df.loc[('Group1', 'C')]
অ্যান্ডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.