Tôi có Pandas Dataframe sau đây với một MultiIndex (Z, A):Chọn dữ liệu ở một mức độ cụ thể từ một MultiIndex
H1 H2
Z A
0 100 200 0.3112 -0.4197
1 100 201 0.2967 0.4893
2 100 202 0.3084 -0.4873
3 100 203 0.3069 NaN
4 101 203 -0.4956 NaN
Câu hỏi: Làm thế nào tôi có thể chọn tất cả các mục có A = 203? Tôi đã thử sử dụng df[:,'A']
nhưng không hoạt động. Sau đó, tôi tìm thấy this trong tài liệu trực tuyến vì vậy tôi cố gắng:
df.xs(203,level='A')
nhưng tôi nhận được:
"TypeError: xs() got an unexpected keyword argument 'level'
"
Ngoài ra tôi không thấy tham số này trong doc cài đặt (df.xs?
):
"Parameters ---- ------ key: object Một số nhãn chứa trong chỉ mục hoặc một phần trong trục MultiIndex: int, mặc định 0 Trục để truy xuất mặt cắt ngang trên bản sao: boolean, mặc định Đúng Cho dù tạo bản sao của dữ liệu "
Lưu ý: Tôi có phiên bản phát triển.
Chỉnh sửa: Tôi tìm thấy this thread. Họ khuyên bạn nên sử dụng một cái gì đó như:
df.select(lambda x: x[1]==200, axis=0)
Tôi vẫn muốn biết điều gì đã xảy ra với df.xs với thông số cấp hoặc cách được khuyến nghị trong phiên bản hiện tại.
Phiên bản bạn đang sử dụng? Rõ ràng là 'level' đã được thêm vào [version' 0.7.0'] (http://pandas.pydata.org/pandas-docs/dev/whatsnew.html#v-0-7-0-february-9-2012) . – Avaris
Vâng rõ ràng đó là vấn đề, tôi đang ở trên 0.6.1, tôi đã cài đặt từ git nhưng bằng cách nào đó tôi vẫn còn trên 0.6.1, cảm ơn, tôi nên đóng câu hỏi, nếu có, làm thế nào? – elyase
Bạn có thể viết câu trả lời với lý do giải quyết vấn đề và giải pháp thay thế và chấp nhận nó. – Avaris