Khi có một DataFrame như sau:
import pandas as pd
df = pd.DataFrame([1, 1, 1, 1, 1], index=[100, 29, 234, 1, 150], columns=['A'])
Làm cách nào để sắp xếp khung dữ liệu này theo chỉ mục với từng kết hợp giá trị chỉ mục và cột được giữ nguyên?
Khi có một DataFrame như sau:
import pandas as pd
df = pd.DataFrame([1, 1, 1, 1, 1], index=[100, 29, 234, 1, 150], columns=['A'])
Làm cách nào để sắp xếp khung dữ liệu này theo chỉ mục với từng kết hợp giá trị chỉ mục và cột được giữ nguyên?
Câu trả lời:
Khung dữ liệu có một sort_index
phương thức trả về một bản sao theo mặc định. Vượt qua inplace=True
để hoạt động tại chỗ.
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 cho tôi:
A
1 4
29 2
100 1
150 5
234 3
Nhỏ gọn hơn một chút:
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df = df.sort_index()
print(df)
Ghi chú:
sort
đã không được dùng nữa, được thay thế bằng sort_index
cho trường hợp nàyinplace
vì nó thường khó đọc hơn và ngăn chặn việc xâu chuỗi. Xem giải thích trong câu trả lời tại đây:
Gấu trúc: giảm hiệu suất đặc biệt khi đổi tên tại chỗ sau dropna.sort()
đã không còn được dùng nữa. Sự thay thế sẽ .sort_index()
giống như Paul H sử dụng trong câu trả lời của mình, trong trường hợp đó, điểm khác biệt duy nhất giữa các câu trả lời của chúng tôi là tôi không sử dụng inplace=True
.
.sort()
docstring nóiDEPRECATED: use DataFrame.sort_values()