Tôi có một số người dùng được xác định mà tôi muốn so sánh với một cột nhất định của một khung dữ liệu.trả lại hàng trong một khung dữ liệu gần nhất với số do người dùng xác định
Tôi muốn trả về các hàng của một khung dữ liệu chứa (trong một cột nhất định của df, như df.num) 5 số gần nhất với số đã cho x.
Bất kỳ đề xuất nào về cách tốt nhất để làm điều này mà không có vòng lặp sẽ được đánh giá cao.
Giả sử chúng tôi muốn khái quát hóa điều này để cung cấp cho chúng tôi 5 hàng gần nhất (khi chúng tôi có n yếu tố đầu vào và chúng tôi muốn đo sự gần gũi với n cột riêng biệt). Bạn vẫn làm theo cách này chứ? Nếu n = 2 (nói, x = 0,75, y = 5,0) - là dễ nhất để sử dụng "&" df.ix [(df.num1-x) .abs(). Argsort() [: 5] & (df.num2-y) .abs(). argsort() [: 5]]? Cảm ơn bạn! –
Giao diện gấu trúc có thay đổi không? Tôi cần phải sử dụng 'df.iloc' thay vì' df.ix' nếu không thì các trường là tất cả 'NaN'. – swenzel
Ah Tôi nghĩ rằng vấn đề là với chỉ số df của tôi, nó không phải là một chuỗi như 'phạm vi (len (df))'. 'iloc' tuy nhiên dường như hoạt động với cả chỉ số" bình thường "và chỉ mục của tôi. Tôi không có kinh nghiệm với gấu trúc nhưng hành vi này cho thấy rằng việc sử dụng 'iloc' sẽ ổn định hơn? – swenzel