เมื่อมี DataFrame ดังต่อไปนี้:
import pandas as pd
df = pd.DataFrame([1, 1, 1, 1, 1], index=[100, 29, 234, 1, 150], columns=['A'])
ฉันจะจัดเรียง dataframe ตามดัชนีโดยมีค่าดัชนีและคอลัมน์แต่ละชุดเหมือนเดิมได้อย่างไร
เมื่อมี DataFrame ดังต่อไปนี้:
import pandas as pd
df = pd.DataFrame([1, 1, 1, 1, 1], index=[100, 29, 234, 1, 150], columns=['A'])
ฉันจะจัดเรียง dataframe ตามดัชนีโดยมีค่าดัชนีและคอลัมน์แต่ละชุดเหมือนเดิมได้อย่างไร
คำตอบ:
Dataframes มีsort_indexวิธีการที่ส่งคืนสำเนาตามค่าเริ่มต้น ผ่านinplace=Trueเพื่อดำเนินการในสถานที่
import pandas as pd
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df.sort_index(inplace=True)
print(df.to_string())
ให้ฉัน:
A
1 4
29 2
100 1
150 5
234 3
กะทัดรัดกว่าเล็กน้อย:
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df = df.sort_index()
print(df)
บันทึก:
sortถูกเลิกใช้งานแล้วแทนที่ด้วยsort_indexสำหรับสถานการณ์นี้inplaceเนื่องจากมักจะอ่านยากกว่าและป้องกันการผูกมัด ดูคำอธิบายในคำตอบที่นี่:
หมีแพนด้า: ประสิทธิภาพลดลงอย่างแปลกประหลาดสำหรับการเปลี่ยนชื่อแทนหลังจากดรอปนา.sort()ได้เลิกใช้งานไปแล้ว ทดแทนจะเป็นการใช้งานพอลเอชในคำตอบของเขาซึ่งในกรณีนี้แตกต่างระหว่างคำตอบของเราคือฉันไม่ได้ใช้.sort_index() inplace=True
.sort()docstring กล่าวว่าDEPRECATED: use DataFrame.sort_values()