Hướng dẫn dùng set_index python

pandas.DataFrame.set_index() được sử dụng để đặt chỉ mục thành DataFrame của gấu trúc. Bằng cách sử dụng phương thức set_index (), bạn có thể đặt danh sách giá trị, cột DataFrame gấu trúc hiện có, Chuỗi làm chỉ mục, cũng đặt nhiều cột làm chỉ mục. Sử dụng pandas.DataFrame.reset_index () để đặt lại chỉ mục với các giá trị số mặc định.

Nội dung chính

  • 1. Ví dụ nhanh về chỉ số tập hợp gấu trúc
  • 3. Ví dụ về bộ chỉ số gấu trúc
  • 4. Đặt một cột làm chỉ mục bằng cách sử dụng set_index ()
  • 5. gấu trúc đặt chỉ mục nhiều cột
  • 6. pandas Đặt Index thành datetime
  • 7. Hoàn thành Ví dụ về Bộ chỉ số gấu trúc
  • Sự kết luận

Nội dung chính

  • 1. Ví dụ nhanh về chỉ số tập hợp gấu trúc
  • 3. Ví dụ về bộ chỉ số gấu trúc
  • 4. Đặt một cột làm chỉ mục bằng cách sử dụng set_index ()
  • 5. gấu trúc đặt chỉ mục nhiều cột
  • 6. pandas Đặt Index thành datetime
  • 7. Hoàn thành Ví dụ về Bộ chỉ số gấu trúc
  • Sự kết luận

Nội dung chính

  • 1. Ví dụ nhanh về chỉ số tập hợp gấu trúc
  • 3. Ví dụ về bộ chỉ số gấu trúc
  • 4. Đặt một cột làm chỉ mục bằng cách sử dụng set_index ()
  • 5. gấu trúc đặt chỉ mục nhiều cột
  • 6. pandas Đặt Index thành datetime
  • 7. Hoàn thành Ví dụ về Bộ chỉ số gấu trúc
  • Sự kết luận

Chỉ số gấu trúc là gì?

Chỉ mục giống như một con trỏ để xác định các hàng / cột trên DataFrame hoặc chuỗi. Cả hàng và cột đều có chỉ mục. Chỉ số hàng được gọi là chỉ mục và đối với cột, nó thường là tên hoặc nhãn cột.

pandas.DataFrame.set_index () Các điểm chính

  • Chỉ mục có thể được đặt trong khi tạo DataFrame cho gấu trúc, sử dụng phương thức set_index () để đặt các chỉ mục cho DataFrmae hiện có.
  • Bạn cũng có thể đặt chỉ mục từ Danh sách, Chuỗi hoặc DataFrame. do đó, bạn có thể có nhiều chỉ số thay đổi cho DataFrame.
  • 1. Ví dụ nhanh về chỉ số tập hợp gấu trúc
  • 2. Cú pháp pandas.DataFrame.set_index ()
  • 3. Ví dụ về bộ chỉ số gấu trúc
  • 4. Đặt một cột làm chỉ mục bằng cách sử dụng set_index ()
  • 5. gấu trúc đặt chỉ mục nhiều cột
  • 6. pandas Đặt Index thành datetime
  • 7. Hoàn thành Ví dụ về Bộ chỉ số gấu trúc
  • Sự kết luận

1. Ví dụ nhanh về chỉ số tập hợp gấu trúc

Dưới đây là các ví dụ nhanh và cách sử dụng phương thức pandas.DataFrame.set_index ().


#Set list to index
index_labels=['r1','r2','r3']
df.index = index_labels

# Set single colin as index
df2 = df.set_index('Courses')

# Append index
df2 = df.set_index('Courses', append=True)

# Set multiple columns as Index
df2 = df.set_index(['Courses','Duration'])

# Set date time as index 
df2 = df.set_index(pd.DatetimeIndex(pd.to_datetime(df['Start_Date'])))

Dưới đây là cú pháp của phương thức set_index ().


#pandas DataFrame set_index() syntax
DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)

Phương thức này nhận các tham số dưới đây và trả về DataFrame sau khi thiết lập Chỉ mục. Nếu bạn đã sử dụng inplace = True, điều này trả về Không có và đặt Chỉ mục trên đối tượng DataFrame hiện có.

  • keys – Chấp nhận tên cột singe là Chuỗi, danh sách tên cột, v.v.
  • drop – Xóa cột sau khi thiết lập chỉ mục. Được đặt mặc định thành True.
  • append – Chỉ định nối Chỉ mục mới vào Chỉ mục hiện có. Mặc định được đặt thành Sai.
  • inplace – Sửa đổi đối tượng DataFrame hiện có tại chỗ. Mặc định được đặt thành Sai.
  • verify_integrity – Kiểm tra các chỉ mục mới cho các bản sao. Mặc định được đặt thành Sai. Bằng cách sử dụng True, nó làm giảm hiệu suất của phương thức.

Hãy tạo một DataFrame gấu trúc, chạy các ví dụ trên và xác thực kết quả.


# Create DataFrame
import pandas as pd
import numpy as np
technologies = {
    'Courses':["Spark","PySpark","Hadoop"],
    'Fee' :[20000,25000,26000],
    'Duration':['30day','40days','35days'],
    'Discount':[1000,np.nan,1200],
    'Start_Date' : ['2021-02-04 05:30:00','01-09-2021 06:30:00',
                    '2021-03-06 07:30:00']
              }

df = pd.DataFrame(technologies)
print(df)

# Output
#   Courses    Fee Duration  Discount           Start_Date
#0    Spark  20000    30day    1000.0  2021-02-04 05:30:00
#1  PySpark  25000   40days       NaN  01-09-2021 06:30:00
#2   Hadoop  26000   35days    1200.0  2021-03-06 07:30:00

3. Ví dụ về bộ chỉ số gấu trúc

Vì chúng tôi chưa cung cấp danh sách chỉ mục tại thời điểm tạo DataFrame ở trên, theo mặc định, gấu trúc DataFrame sẽ gán các số thứ tự tăng dần làm nhãn cho các hàng dưới dạng Chỉ mục. Bạn có thể thay đổi chỉ mục bằng cách gán danh sách các giá trị cho DataFrame.index.


# Set list to index
index_labels=['r1','r2','r3']
df.index = index_labels
print(df)

# Outputs
#    Courses    Fee Duration  Discount           Start_Date
#r1    Spark  20000    30day    1000.0  2021-02-04 05:30:00
#r2  PySpark  25000   40days       NaN  01-09-2021 06:30:00
#r3   Hadoop  26000   35days    1200.0  2021-03-06 07:30:00

Nếu muốn, bạn cũng có thể đặt tên thành chỉ mục bằng cách sử dụng rename_axis ().

4. Đặt một cột làm chỉ mục bằng cách sử dụng set_index ()

Đôi khi bạn sẽ được yêu cầu đặt một trong các cột DataFrame hiện có làm Chỉ mục, bạn có thể đạt được điều này bằng cách sử dụng phương thức set_index (). sau khi thiết lập chỉ mục, nó sẽ loại bỏ cột khỏi DataFrame. Để giữ lại nó, hãy sử dụng drop=False tham số.


# Set single colin as index
df2 = df.set_index('Courses')
print(df2)

# Output
#           Fee Duration  Discount           Start_Date
#Courses                                               
#Spark    20000    30day    1000.0  2021-02-04 05:30:00
#PySpark  25000   40days       NaN  01-09-2021 06:30:00
#Hadoop   26000   35days    1200.0  2021-03-06 07:30:00

Lưu ý rằng việc đặt chỉ mục sẽ thay thế chỉ mục hiện có trong DataFrame. Nếu bạn muốn giữ lại Chỉ mục hiện có và thêm vào việc sử dụng chỉ mục mới append=True.


# Append index
df2 = df.set_index('Courses', append=True)
print(df2)

# Output
#              Fee Duration  Discount           Start_Date
#   Courses                                               
#r1 Spark    20000    30day    1000.0  2021-02-04 05:30:00
#r2 PySpark  25000   40days       NaN  01-09-2021 06:30:00
#r3 Hadoop   26000   35days    1200.0  2021-03-06 07:30:00

5. gấu trúc đặt chỉ mục nhiều cột

Bạn cũng có thể đặt nhiều cột làm chỉ mục trong gấu trúc, Để làm như vậy, chỉ cần chuyển tất cả các cột trong danh sách sang phương thức DataFrame.set_index ().


# Set multiple columns as Index
df2 = df.set_index(['Courses','Duration'])
print(df2)

# Output
#                    Fee  Discount           Start_Date
#Courses Duration                                      
#Spark   30day     20000    1000.0  2021-02-04 05:30:00
#PySpark 40days    25000       NaN  01-09-2021 06:30:00
#Hadoop  35days    26000    1200.0  2021-03-06 07:30:00

6. pandas Đặt Index thành datetime

Khi bạn đang làm việc với ngày và giờ và muốn thực hiện một số lọc vào ngày giờ, cách tốt nhất là đặt cột ngày và giờ làm chỉ mục. Trước khi bạn thực hiện việc này, hãy đảm bảo rằng cột ngày của bạn ở định dạng ngày giờ. Sử dụng phương thức pandas.DatetimeIndex () để chuyển đổi datetime thành chỉ mục.


# Set date time as index 
df2 = df.set_index(pd.DatetimeIndex(pd.to_datetime(df['Start_Date'])))
print(df2)

# Output
#                     Courses    Fee Duration  Discount           Start_Date
#Start_Date                                                                 
#2021-02-04 05:30:00    Spark  20000    30day    1000.0  2021-02-04 05:30:00
#2021-01-09 06:30:00  PySpark  25000   40days       NaN  01-09-2021 06:30:00
#2021-03-06 07:30:00   Hadoop  26000   35days    1200.0  2021-03-06 07:30:00

Bằng cách chạy df2.inf (), sẽ cho bạn kết quả bên dưới



DatetimeIndex: 3 entries, 2021-02-04 05:30:00 to 2021-03-06 07:30:00
Data columns (total 5 columns):
 #   Column      Non-Null Count  Dtype  
---  ------      --------------  -----  
 0   Courses     3 non-null      object 
 1   Fee         3 non-null      int64  
 2   Duration    3 non-null      object 
 3   Discount    2 non-null      float64
 4   Start_Date  3 non-null      object 
dtypes: float64(1), int64(1), object(3)
memory usage: 144.0+ bytes
None

Trong trường hợp bạn muốn đặt chỉ mục thành một cột, hãy sử dụng DataFrame.reset_index (). Ngoài ra còn có một số cách khác để thiết lập chỉ số.

7. Hoàn thành Ví dụ về Bộ chỉ số gấu trúc


import pandas as pd
import numpy as np
technologies = {
    'Courses':["Spark","PySpark","Hadoop"],
    'Fee' :[20000,25000,26000],
    'Duration':['30day','40days','35days'],
    'Discount':[1000,np.nan,1200],
    'Start_Date' : ['2021-02-04 05:01:21','01-09-2021 06:03:41',
                    '2021-03-06 07:06:21']
              }

df = pd.DataFrame(technologies)
print(df)

#Set list to index
index_labels=['r1','r2','r3']
df.index = index_labels
print(df)

# Set single colin as index
df2 = df.set_index('Courses')
print(df2)

# Append index
df2 = df.set_index('Courses', append=True)
print(df2)

# Set multiple columns as Index
df2 = df.set_index(['Courses','Duration'])
print(df2)

# Set date time as index 
df2 = df.set_index(pd.DatetimeIndex(pd.to_datetime(df['Start_Date'])))
print(df2)
print(df2.info())

Sự kết luận

Trong bài viết này, bạn đã học cú pháp pandas.DataFrame.set_index (), cách sử dụng và các ví dụ như danh sách thiết lập, cột DataFrame dưới dạng chỉ mục. Và cũng đã học cách đặt nhiều cột và DateTime làm chỉ mục cho DataFrame.

Người giới thiệu