Sê -ri phù hợp/dataFrame với chỉ mục mới với logic điền tùy chọn.
Đặt NA/NAN ở các vị trí không có giá trị trong chỉ số trước. Một đối tượng mới được tạo ra trừ khi chỉ mục mới tương đương với hiện tại và copy=False
.
Nhãn / chỉ mục mới để phù hợp, nên được chỉ định bằng cách sử dụng từ khóa. Tốt nhất là một đối tượng chỉ mục để tránh sao chép dữ liệu.
Phương thức {Không, ‘Backfill,/Bf Bfill,‘ Pad,/Ff Ffill, ’gần nhất}{None, ‘backfill’/’bfill’, ‘pad’/’ffill’, ‘nearest’}Phương pháp sử dụng để điền vào các lỗ hổng trong DataFrame được tái hiện. Xin lưu ý: Điều này chỉ áp dụng cho DataFrames/Sê -ri với chỉ số tăng/giảm đơn điệu.
Không [mặc định]: Don lồng lấp đầy khoảng trống
PAD / FFILL: Tuyên truyền quan sát hợp lệ cuối cùng về phía sau hợp lệ tiếp theo.
Overfill / bfill: Sử dụng quan sát hợp lệ tiếp theo để lấp đầy khoảng trống.
Gần nhất: Sử dụng các quan sát hợp lệ gần nhất để lấp đầy khoảng trống.
Trả về một đối tượng mới, ngay cả khi các chỉ mục được truyền là như nhau.
cấp độ hoặc tênint or namePhát sóng trên một cấp độ, phù hợp với các giá trị chỉ số ở cấp độ đa dạng được thông qua.
Giá trị để sử dụng cho các giá trị bị thiếu. Mặc định là NAN, nhưng có thể là bất kỳ giá trị tương thích nào của người Viking.
giới hạn, mặc định không cóint, default NoneSố lượng tối đa của các yếu tố liên tiếp để chuyển tiếp hoặc lùi.
ToleranceOptionaloptionalKhoảng cách tối đa giữa nhãn gốc và nhãn mới cho các trận đấu không chính xác. Các giá trị của chỉ mục tại các vị trí phù hợp thỏa mãn nhất phương trình
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.020.
Dung sai có thể là một giá trị vô hướng, áp dụng cùng một dung sai cho tất cả các giá trị hoặc giống như danh sách, áp dụng dung sai biến đổi trên mỗi phần tử. Giống như danh sách bao gồm danh sách, tuple, mảng, loạt và phải có cùng kích thước với chỉ mục và DTYPE của nó phải khớp chính xác với loại chỉ mục.
ReturnSseries/dataFrame với chỉ mục đã thay đổi.Ví dụ
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.021 hỗ trợ hai quy ước gọi
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.02
2>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.02
3
Chúng tôi khuyên bạn nên sử dụng các đối số từ khóa để làm rõ ý định của bạn.
Tạo một DataFrame với một số dữ liệu hư cấu.
>>> index = ['Firefox', 'Chrome', 'Safari', 'IE10', 'Konqueror'] >>> df = pd.DataFrame[{'http_status': [200, 200, 404, 404, 301], ... 'response_time': [0.04, 0.02, 0.07, 0.08, 1.0]}, ... index=index] >>> df http_status response_time Firefox 200 0.04 Chrome 200 0.02 Safari 404 0.07 IE10 404 0.08 Konqueror 301 1.00
Tạo một chỉ mục mới và tái tạo dữ liệu. Theo các giá trị mặc định trong chỉ mục mới không có các bản ghi tương ứng trong DataFrame được gán
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.024.
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.02
Chúng ta có thể điền vào các giá trị bị thiếu bằng cách chuyển một giá trị cho từ khóa
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.025. Vì chỉ mục không tăng hoặc giảm đơn điệu, chúng tôi không thể sử dụng các đối số cho từ khóa
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.026 để điền vào các giá trị
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.024.
>>> df.reindex[new_index, fill_value=0] http_status response_time Safari 404 0.07 Iceweasel 0 0.00 Comodo Dragon 0 0.00 IE10 404 0.08 Chrome 200 0.02
>>> df.reindex[new_index, fill_value='missing'] http_status response_time Safari 404 0.07 Iceweasel missing missing Comodo Dragon missing missing IE10 404 0.08 Chrome 200 0.02
Chúng ta cũng có thể tái xuất các cột.
>>> df.reindex[columns=['http_status', 'user_agent']] http_status user_agent Firefox 200 NaN Chrome 200 NaN Safari 404 NaN IE10 404 NaN Konqueror 301 NaN
Hoặc chúng ta có thể sử dụng các đối số từ khóa theo phong cách trục
>>> df.reindex[['http_status', 'user_agent'], axis="columns"] http_status user_agent Firefox 200 NaN Chrome 200 NaN Safari 404 NaN IE10 404 NaN Konqueror 301 NaN
Để minh họa rõ hơn chức năng điền vào
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.028, chúng tôi sẽ tạo một khung dữ liệu với chỉ số tăng đơn điệu [ví dụ: một chuỗi ngày].
>>> date_index = pd.date_range['1/1/2010', periods=6, freq='D'] >>> df2 = pd.DataFrame[{"prices": [100, 101, np.nan, 100, 89, 88]}, ... index=date_index] >>> df2 prices 2010-01-01 100.0 2010-01-02 101.0 2010-01-03 NaN 2010-01-04 100.0 2010-01-05 89.0 2010-01-06 88.0
Giả sử chúng tôi quyết định mở rộng DataFrame để bao gồm phạm vi ngày rộng hơn.
>>> date_index2 = pd.date_range['12/29/2009', periods=10, freq='D'] >>> df2.reindex[date_index2] prices 2009-12-29 NaN 2009-12-30 NaN 2009-12-31 NaN 2010-01-01 100.0 2010-01-02 101.0 2010-01-03 NaN 2010-01-04 100.0 2010-01-05 89.0 2010-01-06 88.0 2010-01-07 NaN
Các mục nhập chỉ mục không có giá trị trong khung dữ liệu gốc [ví dụ: ‘2009-12-29,] theo mặc định chứa đầy
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.024. Nếu muốn, chúng ta có thể điền vào các giá trị bị thiếu bằng một trong một số tùy chọn.
Ví dụ: để truyền lại giá trị hợp lệ cuối cùng để điền vào các giá trị
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.024, hãy truyền
>>> df.reindex[new_index, fill_value=0] http_status response_time Safari 404 0.07 Iceweasel 0 0.00 Comodo Dragon 0 0.00 IE10 404 0.08 Chrome 200 0.021 làm đối số cho từ khóa
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.026.
>>> df2.reindex[date_index2, method='bfill'] prices 2009-12-29 100.0 2009-12-30 100.0 2009-12-31 100.0 2010-01-01 100.0 2010-01-02 101.0 2010-01-03 NaN 2010-01-04 100.0 2010-01-05 89.0 2010-01-06 88.0 2010-01-07 NaN
Xin lưu ý rằng giá trị
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.024 có trong DataFrame gốc [tại Giá trị INDEX 2010-01-03] sẽ không được điền bởi bất kỳ sơ đồ truyền giá trị nào. Điều này là do điền trong khi tái hiện không xem xét các giá trị dữ liệu, mà chỉ so sánh các chỉ mục gốc và mong muốn. Nếu bạn muốn điền vào các giá trị
>>> new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10', ... 'Chrome'] >>> df.reindex[new_index] http_status response_time Safari 404.0 0.07 Iceweasel NaN NaN Comodo Dragon NaN NaN IE10 404.0 0.08 Chrome 200.0 0.024 có trong DataFrame gốc, hãy sử dụng phương thức
>>> df.reindex[new_index, fill_value=0] http_status response_time Safari 404 0.07 Iceweasel 0 0.00 Comodo Dragon 0 0.00 IE10 404 0.08 Chrome 200 0.025.
Xem Hướng dẫn sử dụng để biết thêm.user guide for more.