Tin tức và phân tích của tất cả các thiết bị di động

Cách đổi tên cột gấu trúc [4 Examples]

Đổi tên các cột trong khung dữ liệu Pandas là một thao tác phổ biến. Khám phá bốn phương pháp khác nhau để đổi tên cột gấu trúc.

Pandas là thư viện Python phổ biến để phân tích dữ liệu. Dữ liệu chúng ta cần phân tích thường có sẵn ở nhiều định dạng khác nhau, bao gồm tệp csv và tsv, cơ sở dữ liệu quan hệ, v.v. Bạn cần thực hiện kiểm tra dữ liệu ban đầu, xử lý các giá trị còn thiếu và chuẩn bị dữ liệu để phân tích thêm.

Với gấu trúc bạn có thể:

  • Thu thập dữ liệu từ nhiều nguồn khác nhau
  • Khám phá tập dữ liệu và xử lý các giá trị còn thiếu trong đó
  • Phân tích tập dữ liệu của bạn để biết thông tin chi tiết

Trong tất cả các dự án khoa học dữ liệu, bạn sẽ thường tạo các khung dữ liệu từ các cấu trúc dữ liệu Python như từ điển. Bạn cũng có thể tải dữ liệu từ các nguồn khác, chẳng hạn như tệp csv vào khung dữ liệu.

Dataframe là cấu trúc dữ liệu cơ bản trong gấu trúc. Nó chứa các bản ghi dọc theo hàng và các trường hoặc thuộc tính khác nhau dọc theo cột.

Tuy nhiên, bạn có thể cần đổi tên các cột để chúng mang tính mô tả và dễ đọc hơn. Ở đây bạn sẽ tìm hiểu bốn cách khác nhau để đổi tên cột. Hãy bắt đầu!

Tạo khung dữ liệu Pandas

Bạn có thể làm theo hướng dẫn trong môi trường sổ ghi chép Jupyter có cài đặt gấu trúc. Bạn cũng có thể theo dõi trên Google Colab.

Trước tiên, chúng ta sẽ tạo Pandas DataFrame và làm việc với nó trong phần còn lại của hướng dẫn.

Đây là từ điển book_dict:

books_dict = {
    "one": [
        "Atomic Habits",
        "His Dark Materials",
        "The Midnight Library",
        "The Broken Earth",
        "Anxious People",
    ],
    "two": [
        "James Clear",
        "Philip Pullman",
        "Matt Haig",
        "N.K.Jemisin",
        "Fredrik Backman",
    ],
    "three": ["Nonfiction", "Fantasy", "Magical Realism", "Fantasy", "Fiction"],
    "four": [4, 5, 3, 5, 4],
}

Trước tiên, chúng tôi sẽ nhập gấu trúc và sau đó tạo khung dữ liệu df từ books_dict.

import pandas as pd

Lưu ý: Chúng tôi sẽ quay lại ô mã sau để tạo phiên bản ban đầu của khung dữ liệu trước khi đổi tên các cột.

df = pd.DataFrame(books_dict)

Chúng ta có thể sử dụng hàm df.head() để lấy một vài hàng đầu tiên của khung dữ liệu df. Theo mặc định, nó trả về năm hàng đầu tiên. Ở đây df chỉ có năm dòng; vì vậy bằng cách sử dụng df.head() chúng ta sẽ có được toàn bộ khung dữ liệu.

df.head()

Chúng ta có thể thấy rằng tên cột bây giờ là khóa từ điển. Nhưng điều đó không mang tính mô tả lắm. Vì vậy, hãy đổi tên chúng! 👩‍🏫

Phương pháp đổi tên cột trong gấu trúc

Bây giờ hãy xem các phương pháp đổi tên cột khác nhau trong gấu trúc:

  • Đặt thuộc tính cột của khung dữ liệu thành danh sách tên cột mới
  • Sử dụng phương thức đổi tên() trong khung dữ liệu
  • Sử dụng str.replace để đổi tên một hoặc nhiều cột
  • Sử dụng phương thức set_axis() trên khung dữ liệu

Đặt thuộc tính cột

Đối với bất kỳ khung dữ liệu nào, thuộc tính cột chứa danh sách tên cột:

df.columns
# Index(['one', 'two', 'three', 'four'], dtype="object")

Hãy đổi tên các cột để biểu thị ý nghĩa của từng trường, sau đó gọi df.head() để xem kết quả:

df.columns = ['Title','Author','Genre','Rating']
df.head()

Sử dụng phương thức đổi tên().

Để đổi tên các cột trong pandas, bạn có thể sử dụng phương thức đổi tên() với cú pháp:

df.rename(column={mapping})

Ánh xạ này có thể là một từ điển có dạng sau:

{'old_col_name_1':'new_col_name_1', 'old_col_name_2':'new_col_name_2',...,
'old_col_name_n':'new_col_name_n'}

Hãy tạo một df từ từ điển books_dict:

df = pd.DataFrame(books_dict)

Sử dụng phương thức đổi tên() với cú pháp trên, chúng ta nhận được df_1. Đó là bản sao của khung dữ liệu với tên cột đã thay đổi.

df_1 = df.rename(columns={'one':'Title','two':'Author','three':'Genre','four':'Rating'})
df_1.head()

Vì vậy, tên cột df_1 đã được sửa đổi:

Nhưng tên cột của khung dữ liệu df ban đầu không thay đổi:

df.head()

Vì phương pháp này cho phép chúng tôi cung cấp ánh xạ giữa tên cột cũ và mới, nên chúng tôi có thể sử dụng nó để đổi tên cả cột đơn và nhiều cột.

Đổi tên các cột tại chỗ

Điều gì sẽ xảy ra nếu bạn muốn sửa đổi khung dữ liệu hiện có mà không tạo bản sao mới?

Để thực hiện việc này, bạn có thể đặt khoảng trắng bằng True trong lệnh gọi phương thức.

df.rename(columns={'one':'Title','two':'Author','three':'Genre','four':'Rating'},inplace=True)
df.head()

Điều này sẽ đổi tên các cột của khung dữ liệu df ban đầu:

Cho đến nay chúng ta đã thấy làm thế nào:

  • Đổi tên các cột bằng cách cung cấp một từ điển ánh xạ tên cột cũ sang tên cột mới
  • Đổi tên các cột tại chỗ mà không tạo khung dữ liệu mới

Bạn cũng có thể sử dụng phương pháp đổi tên theo cách khác.

Một cách tiếp cận khác để đổi tên cột

Hãy thay đổi tên cột thành chữ hoa:

df = pd.DataFrame(books_dict)
df.columns = ['TITLE','AUTHOR','GENRE','RATING']
df.head()

Khung dữ liệu df bây giờ trông như thế này:

Giả sử chúng ta muốn thay đổi tên từng cột này thành tiêu đề. Thay vì cung cấp từ điển cho từng tên cột, chúng ta có thể chỉ định lệnh gọi hàm hoặc phương thức trên đối tượng như sau:

df.rename(str.title,axis="columns",inplace=True)
df.head()

Ở đây, chúng tôi đặt trục thành “cột” và sử dụng str.title để chuyển đổi tất cả các tên cột thành chữ hoa chữ thường trong tiêu đề.

Sử dụng str.replace() trên chuỗi tên cột

Như mọi khi, hãy chạy ô mã sau để tạo khung dữ liệu từ từ điển:

df = pd.DataFrame(books_dict)

Trong Python, bạn sẽ sử dụng phương thức thay thế() với cú pháp str.replace(this, with_this) để lấy bản sao của chuỗi với những thay đổi cần thiết. Đây là một ví dụ:

>>> str1 = 'Marathon'
>>> str1.replace('Mara','Py')
'Python'

Bạn biết rằng thuộc tính columns chứa danh sách các chuỗi chứa tên cột. Vì vậy, bạn có thể gọi str.replace(‘old_column_name’,’new_column_name’) như thế này:

df.columns = df.columns.str.replace('one','Title')
df.head()

Ở đây, chúng ta chỉ đổi tên cột “một” thành “Tiêu đề”, nên các tên cột khác không thay đổi.

Bây giờ hãy đổi tên các cột khác bằng cách sử dụng cách tiếp cận tương tự:

df.columns = df.columns.str.replace('two','Author')
df.columns = df.columns.str.replace('three','Genre')
df.columns = df.columns.str.replace('four','Rating')
df.head()

Phương pháp đổi tên cột này rất hữu ích khi bạn chỉ cần đổi tên một hoặc một tập hợp con nhỏ các cột.

Sử dụng phương thức set_axis().

Hãy quay lại phiên bản ban đầu của khung dữ liệu:

df = pd.DataFrame(books_dict)

Bạn cũng có thể sử dụng phương thức set_axis() để đổi tên các cột. Cú pháp như sau:

df.set_axis([list_of_column_names],axis="columns")

Theo mặc định, phương thức set_axis() trả về một bản sao của khung dữ liệu. Nhưng nếu bạn muốn sửa đổi khung dữ liệu tại chỗ, bạn có thể đặt bản sao thành Sai.

df = df.set_axis(['Title','Author','Genre','Rating'],axis="columns",copy=False)
df.head()

Ứng dụng

Dưới đây là tổng quan về các phương pháp khác nhau để đổi tên cột trong khung dữ liệu gấu trúc:

  • Đối với khung dữ liệu mẫu df, thuộc tính cột df.columns là danh sách tên cột. Để đổi tên các cột, bạn có thể đặt thuộc tính này thành danh sách tên cột mới.
  • Phương thức đổi tên() để đổi tên các cột hoạt động theo cú pháp: df.rename(columns={mapping}) trong đó ánh xạ đề cập đến việc ánh xạ tên cột cũ sang tên cột mới. Bạn cũng có thể sử dụng phương thức đổi tên() bằng cách chỉ định một hàm để áp dụng cho tất cả các tên cột: df.rename(gọi hàm hoặc phương thức, axis=’columns’).
  • Tương tự như cách bạn sử dụng phương thức thay thế() trên chuỗi python, bạn có thể sử dụng df.columns.str.replace(‘old_column_name’, ‘new_column_name’) để thay thế tên cột.
  • Một cách khác để đổi tên cột là sử dụng phương thức set_axis với cú pháp: df.set_axis(list_of_col_names,axis=’columns’).

Đó là tất cả trong hướng dẫn này! Xem danh sách sổ ghi chép cộng tác để phân tích dữ liệu.