Hướng dẫn how do i reindex a dataframe in python? - làm cách nào để lập chỉ mục lại khung dữ liệu trong python?

DataFrame.Reindex (nhãn = none, index = none, cột = none, axis = none, meather = none, copy = none, level = none, fill_value = nan, giới hạn = khôngreindex(labels=None, index=None, columns=None, axis=None, method=None, copy=None, level=None, fill_value=nan, limit=None, tolerance=None)[source]#

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.

Tham sốKekWords cho AxesArray giống như, Tùy chọnkeywords for axesarray-like, optional

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.

copybool, mặc định đúngbool, default True

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 name

Phá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.

fill_valuescalar, np.nan mặc địnhscalar, default np.NaN

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 None

Số lượng tối đa của các yếu tố liên tiếp để chuyển tiếp hoặc lùi.

ToleranceOptionaloptional

Khoả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.02
0.

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.02
1 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.02
4.

>>> 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.02
5. 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.02
6 để đ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.02
4.

>>> 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.02
8, 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.02
4. 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.02
4, 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.02
1 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.02
6.

>>> 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.02
4 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.02
4 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.02
5.

Xem Hướng dẫn sử dụng để biết thêm.user guide for more.

Làm cách nào để thay đổi chỉ mục của một khung dữ liệu trong Python?

Để thay đổi các giá trị chỉ mục, chúng ta cần sử dụng phương thức SET_INDEX có sẵn trong gấu trúc cho phép chỉ định các chỉ mục. trong đó, tham số tại chỗ chấp nhận đúng hoặc sai, trong đó chỉ định rằng sự thay đổi trong chỉ mục là vĩnh viễn hoặc tạm thời. Đúng chỉ ra rằng thay đổi là vĩnh viễn.use the set_index method which is available in pandas allows specifying the indexes. where, inplace parameter accepts True or False, which specifies that change in index is permanent or temporary. True indicates that change is Permanent.

Chức năng Reindex trong Python là gì?

Phương thức Reindex () cho phép bạn thay đổi các chỉ mục hàng và nhãn cột.;] Lưu ý: Các giá trị được đặt thành NAN nếu chỉ mục mới không giống như cũ.allows you to change the row indexes, and the columns labels. ;] Note: The values are set to NaN if the new index is not the same as the old.

Làm cách nào để tái tạo một khung dữ liệu sau khi thả hàng?

Cách tiếp cận :..
Nhập mô -đun Pandas ..
Tạo một khung dữ liệu ..
Thả một số hàng từ DataFrame bằng phương thức Drop () ..
Đặt lại chỉ mục của dataFrame bằng phương thức reset_index () ..
Hiển thị DataFrame sau mỗi bước ..

Làm thế nào để bạn sử dụng chức năng Reindex?

Hàm Reindex () được sử dụng để phù hợp với DataFrame với chỉ mục mới với logic điền tùy chọn, đặt NA/NAN vào các vị trí không có giá trị trong chỉ mục trước đó.Phù hợp với DataFrame với chỉ mục mới với logic điền tùy chọn, đặt NA/NAN vào các vị trí không có giá trị trong chỉ mục trước đó.to conform DataFrame to new index with optional filling logic, placing NA/NaN in locations having no value in the previous index. Conform DataFrame to new index with optional filling logic, placing NA/NaN in locations having no value in the previous index.