Tôi đang đối phó với gấu trúc dataframe và có một khung như thế này:Pandas dày đặc RANK
Year Value
2012 10
2013 20
2013 25
2014 30
Tôi muốn làm một equialent để DENSE_RANK() trên (thứ tự theo năm) chức năng. để tạo cột bổ sung như thế này:
Year Value Rank
2012 10 1
2013 20 2
2013 25 2
2014 30 3
Làm thế nào để có thể thực hiện được trong gấu trúc?
Cảm ơn!
Lưu ý rằng bạn sẽ muốn sử dụng 'sort = True' trong lệnh gọi' factorize', điều này sẽ ảnh hưởng đến thời gian của bạn (trong 3M số lớn df của tôi, phương thức 1, tức là sử dụng ' phương thức rank' hóa ra là nhanh nhất). Lý do bạn cho rằng nó hoạt động, bởi vì các phần tử không trùng lặp của mảng đã được sắp xếp. –
Có, nhưng nó phụ thuộc vào dữ liệu có sắp xếp hay không. Trong mẫu được sắp xếp, vì vậy không cần thiết. – jezrael
Thật vậy, và đó là những gì tôi đã nói. Bởi vì nó được sắp xếp, yếu tố sẽ nhanh hơn. Nói chung, dữ liệu không được sắp xếp và do đó, hệ số và xếp hạng sẽ trả về các câu trả lời khác nhau. Tôi đã thêm nhận xét làm cảnh báo cho người đọc trong tương lai, những người sẽ mù quáng tiếp nhận các giải pháp mà không kiểm tra các điều kiện mà theo đó họ được giả định làm việc. –