Tôi có một khung dữ liệu mà Im tải từ tệp csv và sau đó đặt chỉ mục thành vài cột của nó (thường là hai hoặc ba) theo phương pháp set_index. Ý tưởng là để sau đó phần truy cập của dataframe sử dụng một số tổ hợp phím, như vậy:Phân loại Multi-Index thành độ sâu đầy đủ (Pandas)
df.set_index(['fileName','phrase'])
df.ix['somePath','somePhrase']
Appearntly, kiểu này lựa chọn với nhiều phím duy nhất là có thể nếu Multi-Index của dataframe được sắp xếp để đủ chiều sâu . Trong trường hợp này, vì im cung cấp hai khóa, thao tác .ix sẽ không chỉ thất bại nếu chỉ mục đa dataframe được sắp xếp theo chiều sâu ít nhất 2.
vì một số lý do, khi Im thiết lập chỉ mục như được hiển thị, trong khi tôi có vẻ như cả hai lớp được sắp xếp, gọi df.index.lexsort_depth
lệnh trả về 1 và tôi nhận được lỗi sau khi cố truy cập bằng hai khóa: MultiIndex lexsort depth 1, key was length 2
Bất kỳ trợ giúp nào?
Tôi nghĩ tôi đã rõ ràng. Tôi đã thấy tài liệu bạn đã liên kết đến rồi, nó không giúp được gì. vấn đề bắt đầu khi bạn cố gắng acess một hàng cụ thể với khóa của nó. Nếu chỉ mục không được sắp xếp theo tất cả các cấp, bạn sẽ gặp lỗi. câu hỏi là làm thế nào để sắp xếp chỉ mục ở tất cả các cấp độ – idoda
chỉ '' df.sortlevel() '' – Jeff
Tôi đã làm, nó không hoạt động đúng. khi tôi phân loại bởi 'fileName', chỉ số bên ngoài được sắp xếp, một bên trong ('cụm từ') được trộn lẫn. khi tôi sắp xếp theo 'cụm từ' lớp bọc ngoài ('tên tệp') được trộn lẫn, trong khi cấp độ bên trong được sắp xếp. Trong cả hai trường hợp, độ sâu phân loại là 1, điều này ngăn cản tôi truy cập vào df bằng hai khóa. Tôi cần một số cách để sắp xếp chỉ mục bên ngoài và ** sau đó ** sắp xếp chỉ mục bên trong mà không thay đổi thứ tự của chỉ mục bên ngoài. tức là - tôi cần hai lớp sắp xếp. – idoda