pandas จัดเรียงสองคอลัมน์เช่นการแบ่งพาร์ติชันตามแบบสอบถาม SQL

กระทู้คำถาม
ฉันต้องการจัดเรียงค่าของพาร์ติชันสองคอลัมน์ตามพาร์ติชัน ซึ่งคล้ายกับวิธีการทำงานของพาร์ติชัน SQL ในกรณีนี้ ฉันอธิบายว่าทำไมฉันถึงต้องการมัน
ฉันมีกรอบข้อมูลต่อไปนี้:
[code]df = pd.DataFrame({'A': [6,0,  4,2,  8, 2,  6,0, 4,8],
                   'B': range(0, 10),
                   'C': ['a', 'b','c', 'd', 'e','a', 'b','c', 'd', 'e']})
    A   B   C
0   6   0   a
1   0   1   b
2   4   2   c
3   2   3   d
4   8   4   e
--------------- partition by C
5   2   5   a
6   6   6   b
7   0   7   c
8   4   8   d
9   8   9   e
[/code]กรอบข้อมูลสุดท้ายของฉันเป็นดังนี้:
[code]import pandas as pd
import random as rand
df = pd.DataFrame({'A': [0, 2, 4, 6, 8,0, 2, 4, 6, 8],
                   'B': range(0, 10),
                   'C': ['a', 'b','c', 'd', 'e','a', 'b','c', 'd', 'e']})
A   B   C
0   0   0   a
1   2   1   b
2   4   2   c
3   6   3   d
4   8   4   e
--------------- partition by C
5   0   5   a
6   2   6   b
7   4   7   c
8   6   8   d
9   8   9   e
[/code]อย่างที่คุณเห็น ฉันมีพาร์ติชันจาก a ถึง e ในคอลัมน์ C ของ data frame และฉันต้องจัดเรียงคอลัมน์ A โดยขึ้นอยู่กับพาร์ติชันใน C ฉันคิดวิธีแก้ปัญหาที่เหมาะสมไม่ได้ สิ่งนี้คล้ายกับ Partition by ใน SQL
บล็อก scaler นี้เสนอให้สร้างคอลัมน์ sort_ โดยใช้ GroupBy.cumcount เพื่อระบุพาร์ติชันและ DataFrame.sort_values ​​เพื่อจัดเรียง dataframe ตาม sort_ & A แต่ฉันกำลังมองหาวิธีที่ตรงกว่าในการทำสิ่งนี้ให้สำเร็จ ใครสามารถช่วยฉันได้บ้าง
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่