Hướng dẫn reset index in list python - đặt lại chỉ mục trong danh sách python

Tôi muốn đặt lại chỉ mục dựa trên danh sách

Giả sử tôi có DataFrame như thế này

 list = ['RGB','RBR','RGD']

       a   b

RBR    0   1 
RGD    10  2  
RGB    11  3  
RGD    10  2 
RGD    10  2  
RGD    10  2  
RBR    0   1  
RGB    11  3  

df.reindex(index=list)

Tệp "C: \ Users \ Yugas \ AppData \ Local \ Program \ Python \ Python36 \ lib \ Site-Packages \ Pandas \ Core \ indexes \ base.py" trục ")

ValueError: Không thể tái xuất từ ​​trục trùng lặp

Bất kỳ cách nào khác tôi có thể làm điều này?

Đã hỏi ngày 24 tháng 6 năm 2018 lúc 14:32Jun 24, 2018 at 14:32

Hướng dẫn reset index in list python - đặt lại chỉ mục trong danh sách python

1

Không làm lại chỉ cần sử dụng

li =  ['RGB','RBR','RGD']
df = df.loc[li]

    a  b
RGB  11  3
RGB  11  3
RBR   0  1
RBR   0  1
RGD  10  2
RGD  10  2
RGD  10  2
RGD  10  2
1, tức là

li =  ['RGB','RBR','RGD']
df = df.loc[li]

    a  b
RGB  11  3
RGB  11  3
RBR   0  1
RBR   0  1
RGD  10  2
RGD  10  2
RGD  10  2
RGD  10  2

Đã trả lời ngày 24 tháng 6 năm 2018 lúc 14:46Jun 24, 2018 at 14:46

Hướng dẫn reset index in list python - đặt lại chỉ mục trong danh sách python

BharathbharathBharath

29.1k5 Huy hiệu vàng54 Huy hiệu bạc101 Huy hiệu đồng5 gold badges54 silver badges101 bronze badges

Bạn có các giá trị trùng lặp trong chỉ mục của bạn.

li =  ['RGB','RBR','RGD']
df = df.loc[li]

    a  b
RGB  11  3
RGB  11  3
RBR   0  1
RBR   0  1
RGD  10  2
RGD  10  2
RGD  10  2
RGD  10  2
2 yêu cầu chỉ mục của bạn phải là duy nhất.

Một giải pháp hiệu quả có sẵn cho gấu trúc là dữ liệu phân loại, cẩn thận để chỉ định

li =  ['RGB','RBR','RGD']
df = df.loc[li]

    a  b
RGB  11  3
RGB  11  3
RBR   0  1
RBR   0  1
RGD  10  2
RGD  10  2
RGD  10  2
RGD  10  2
3.

L = ['RGB', 'RBR', 'RGD']

df.index = pd.Categorical(df.index, categories=L, ordered=True)

res = df.sort_index()

print(res)

      a  b
RGB  11  3
RGB  11  3
RBR   0  1
RBR   0  1
RGD  10  2
RGD  10  2
RGD  10  2
RGD  10  2

Đã trả lời ngày 24 tháng 6 năm 2018 lúc 14:36Jun 24, 2018 at 14:36

Hướng dẫn reset index in list python - đặt lại chỉ mục trong danh sách python

JPPJPPjpp

152K32 Huy hiệu vàng257 Huy hiệu bạc319 Huy hiệu đồng32 gold badges257 silver badges319 bronze badges

Series.reset_index (level = none, drop = false, name = _nodefault.no_default, inplace = false, allow_duplicates = false) [Nguồn]#reset_index(level=None, drop=False, name=_NoDefault.no_default, inplace=False, allow_duplicates=False)[source]#

Tạo một DataFrame hoặc Sê -ri mới với Đặt lại chỉ mục.

Điều này rất hữu ích khi chỉ mục cần được coi là một cột hoặc khi chỉ mục là vô nghĩa và cần được đặt lại về mặc định trước khi hoạt động khác.

Tham sốLevelInt, str, tuple hoặc danh sách, tùy chọn mặc địnhlevelint, str, tuple, or list, default optional

Đối với một loạt có đa dạng, chỉ loại bỏ các mức được chỉ định khỏi chỉ mục. Loại bỏ tất cả các cấp theo mặc định.

dropbool, mặc định saibool, default False

Chỉ cần đặt lại chỉ mục, mà không cần chèn nó làm cột trong DataFrame mới.

NameObject, tùy chọnobject, optional

Tên để sử dụng cho cột chứa các giá trị chuỗi ban đầu. Sử dụng

li =  ['RGB','RBR','RGD']
df = df.loc[li]

    a  b
RGB  11  3
RGB  11  3
RBR   0  1
RBR   0  1
RGD  10  2
RGD  10  2
RGD  10  2
RGD  10  2
4 theo mặc định. Đối số này bị bỏ qua khi thả là đúng.

inplaceBool, mặc định saibool, default False

Sửa đổi chuỗi tại chỗ (không tạo một đối tượng mới).

allow_duplicatesbool, mặc định saibool, default False

Cho phép các nhãn cột trùng lặp được tạo.

Mới trong phiên bản 1.5.0.

ReturnSseries hoặc dataFrame hoặc không có

Khi thả là sai (mặc định), một DataFrame được trả về. Các cột mới được tạo sẽ xuất hiện đầu tiên trong DataFrame, tiếp theo là các giá trị loạt ban đầu. Khi thả là đúng, một loạt được trả lại. Trong cả hai trường hợp, nếu

li =  ['RGB','RBR','RGD']
df = df.loc[li]

    a  b
RGB  11  3
RGB  11  3
RBR   0  1
RBR   0  1
RGD  10  2
RGD  10  2
RGD  10  2
RGD  10  2
5, không có giá trị nào được trả về.

Ví dụ

>>> s = pd.Series([1, 2, 3, 4], name='foo',
...               index=pd.Index(['a', 'b', 'c', 'd'], name='idx'))

Tạo một DataFrame với chỉ mục mặc định.

>>> s.reset_index()
  idx  foo
0   a    1
1   b    2
2   c    3
3   d    4

Để chỉ định tên của tên sử dụng cột mới.

>>> s.reset_index(name='values')
  idx  values
0   a       1
1   b       2
2   c       3
3   d       4

Để tạo một chuỗi mới với bộ bỏ mặc định xuống True.

>>> s.reset_index(drop=True)
0    1
1    2
2    3
3    4
Name: foo, dtype: int64

Để cập nhật loạt bài tại chỗ, mà không tạo ra một bộ mới cho đúng. Lưu ý rằng nó cũng yêu cầu

li =  ['RGB','RBR','RGD']
df = df.loc[li]

    a  b
RGB  11  3
RGB  11  3
RBR   0  1
RBR   0  1
RGD  10  2
RGD  10  2
RGD  10  2
RGD  10  2
6.

>>> s.reset_index(inplace=True, drop=True)
>>> s
0    1
1    2
2    3
3    4
Name: foo, dtype: int64

Tham số cấp độ thú vị cho chuỗi với chỉ số đa cấp.

>>> arrays = [np.array(['bar', 'bar', 'baz', 'baz']),
...           np.array(['one', 'two', 'one', 'two'])]
>>> s2 = pd.Series(
...     range(4), name='foo',
...     index=pd.MultiIndex.from_arrays(arrays,
...                                     names=['a', 'b']))

Để loại bỏ một cấp độ cụ thể khỏi chỉ số, mức sử dụng.

>>> s2.reset_index(level='a')
       a  foo
b
one  bar    0
two  bar    1
one  baz    2
two  baz    3

Nếu mức không được đặt, tất cả các cấp được xóa khỏi chỉ mục.

li =  ['RGB','RBR','RGD']
df = df.loc[li]

    a  b
RGB  11  3
RGB  11  3
RBR   0  1
RBR   0  1
RGD  10  2
RGD  10  2
RGD  10  2
RGD  10  2
0

Làm cách nào để đặt lại chỉ mục danh sách?

Đặt lại chỉ số danh sách..
Chọn danh sách chung trong thanh Cài đặt mô hình ..
Chọn một danh sách, sau đó chọn Mở ..
Chọn Cấu hình> Đặt lại ..

Làm thế nào bạn sẽ đặt lại chỉ mục của một DataFrame vào một danh sách nhất định?

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 cách nào để tái hiện một loạt trong Python?

Tạo một chỉ mục mới và tái lập DataFrame ...
Không (mặc định): Không lấp đầy khoảng trống ..
PAD / FFILL: Tuyên truyền quan sát hợp lệ cuối cùng chuyển sang hợp lệ tiếp theo ..
Operfill / bfill: Sử dụng quan sát hợp lệ tiếp theo để lấp đầy khoảng cách ..
Gần nhất: Sử dụng các quan sát hợp lệ gần nhất để lấp đầy khoảng cách ..

Chỉ số đặt lại là gì?

Pandas DataFrame RESET_INDEX () Phương thức Phương thức reset_index () cho phép bạn đặt lại chỉ mục trở lại các chỉ mục 0, 1, 2, v.v. mặc định.Theo mặc định, phương pháp này sẽ giữ các idexes "cũ" trong một cột có tên là "chỉ mục", để tránh điều này, sử dụng tham số thả.allows you reset the index back to the default 0, 1, 2 etc indexes. By default this method will keep the "old" idexes in a column named "index", to avoid this, use the drop parameter.