Cách xóa khỏi dữ liệu trong python

Khi bắt đầu mọi phân tích, dữ liệu cần được làm sạch, sắp xếp và làm cho gọn gàng. Đối với mọi Khung dữ liệu Python Pandas, hầu như luôn cần phải xóa các hàng và cột để có được lựa chọn dữ liệu phù hợp cho phân tích hoặc trực quan hóa cụ thể của bạn. Chức năng Pandas Drop là chìa khóa để xóa hàng và cột

Mục lục

  1. Pandas Drop Cheatsheet
  2. Khung dữ liệu mẫu
  3. Xóa hoặc xóa các cột DataFrame bằng Pandas Drop
    • Xóa cột theo tên
      • Xóa cột với pandas drop và axis=1
      • Xóa cột với tham số pandas drop “columns”
    • Xóa cột theo số cột hoặc chỉ mục
  4. Xóa các hàng DataFrame bằng Pandas Drop
    • Xóa các hàng bằng cách sử dụng "thả" [tốt nhất cho số lượng hàng nhỏ]
      • Xóa các hàng dựa trên giá trị chỉ mục
      • Xóa hàng dựa trên số hàng
    • Xóa hàng dựa trên giá trị cột bằng cách sử dụng lựa chọn [iloc/loc]
    • Xóa các hàng bằng cách cắt bớt DataFrame
  5. Bỏ "tại chỗ" hoặc trả lại DataFrame mới
  6. Đọc thêm và liên kết

Pandas Drop Cheatsheet

Việc xóa các cột và hàng khỏi DataFrame của bạn không phải lúc nào cũng trực quan như mong đợi. Đó là tất cả về lệnh “DataFrame drop”. Chức năng thả cho phép xóa các hàng và cột khỏi DataFrame của bạn và sau khi bạn đã sử dụng nó một vài lần, bạn sẽ không gặp vấn đề gì

Chức năng "thả" của Pandas được sử dụng để xóa các cột hoặc hàng khỏi Khung dữ liệu Pandas

Khung dữ liệu mẫu

Đối với bài đăng này, chúng tôi đang sử dụng dữ liệu từ trình theo dõi COVID của WHO, được tải xuống vào ngày 1 tháng 1 năm 2020 [dữ liệu tại đây]. Nếu bạn muốn làm việc với dữ liệu cập nhật, vui lòng thay đổi URL nguồn cho hàm read_csv trong tập lệnh tải thành URL này

import pandas as pd

# Read a sample dataset [COVID data as at 1st Jan 2020]
data = pd.read_csv[
    "//shanebucket.s3-eu-west-1.amazonaws.com/downloads/who-covid-2020-01-01.csv.zip"
]
# If you'd like to get up-to-date data, use URL: //covid19.who.int/WHO-COVID-19-global-table-data.csv
# Rename the columns into something a little easier to work with.
data.columns = [
    "name", 
    "region", 
    "cases", 
    "cases_per_million", 
    "cases_7_days", 
    "cases_24_hours", 
    "deaths", 
    "deaths_per_million", 
    "deaths_7_days", 
    "deaths_24_hours", 
    "transmission_type"
]
data.head[]

Khung dữ liệu Pandas mẫu về dữ liệu COVID được tải xuống từ WHO vào ngày 1 tháng 1 năm 2020

Xóa hoặc xóa các cột DataFrame bằng Pandas Drop

Xóa cột theo tên

Dễ dàng xóa các cột theo tên khỏi DataFrames bằng cách sử dụng lệnh drop. Có hai dạng cú pháp hàm drop mà bạn nên biết, nhưng chúng đều đạt được kết quả như nhau

Xóa cột với pandas drop và axis=1

Cách mặc định để sử dụng "thả" để xóa cột là cung cấp tên cột sẽ bị xóa cùng với việc chỉ định tham số "trục" là 1

# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]

Xóa cột với tham số pandas drop “columns”

Có khả năng một cách trực quan hơn để xóa các cột khỏi DataFrames là sử dụng chức năng "thả" bình thường với tham số "cột" chỉ định một tên cột hoặc danh sách các cột

# Delete a single named column from the DataFrame
data = data.drop[columns="cases"]

# Delete multiple named columns from the DataFrame
data = data.drop[columns=["cases", "cases_per_million"]]

Xóa cột theo số cột hoặc chỉ mục

Hàm thả có thể được sử dụng để xóa các cột theo số hoặc vị trí bằng cách truy xuất tên cột trước cho. làm rơi. Để lấy tên cột, hãy cung cấp chỉ mục cột cho đối tượng

# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
3, đây là danh sách tất cả các tên cột. Sau đó, tên được chuyển đến chức năng thả như trên

# Delete a column by column number
# Delete column number 4 [index number 3 in data.columns]
data = data.drop[columns=data.columns[3]]

CẢNH BÁO. Phương pháp này có thể dẫn đến nhiều cột bị xóa nếu tên của các cột được lặp lại [i. e. bạn có hai cột có cùng tên với cột ở chỉ mục 3]

Khi bạn lặp lại các tên cột, một phương pháp an toàn để xóa cột là sử dụng phương pháp chọn iloc trên DataFrame. Trong trường hợp này, bạn đang cố gắng “chọn tất cả các hàng và tất cả các cột ngoại trừ số cột mà bạn muốn xóa”

Để xóa các cột bằng iloc, bạn cần tạo một danh sách các chỉ số cột mà bạn muốn giữ lại, tôi. e. một danh sách tất cả các số cột, trừ những cái đã xóa

Để tạo danh sách này, chúng ta có thể sử dụng cách hiểu danh sách Python lặp qua tất cả các số cột có thể [

# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
4] và sau đó sử dụng bộ lọc để loại trừ các chỉ mục cột đã xóa [
# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
5]. Lần xóa cuối cùng sau đó sử dụng lựa chọn iloc để chọn tất cả các hàng nhưng chỉ giữ lại các cột [
# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
6]

________số 8

Xóa các hàng DataFrame bằng Pandas Drop

Có ba cách khác nhau để xóa hàng khỏi Pandas Dataframe. Mỗi phương pháp hữu ích tùy thuộc vào số lượng hàng bạn đang xóa và cách bạn xác định các hàng cần xóa

Xóa các hàng bằng cách sử dụng "thả" [tốt nhất cho số lượng hàng nhỏ]

Xóa các hàng dựa trên giá trị chỉ mục

Để xóa các hàng khỏi DataFrame, hàm thả tham chiếu các hàng dựa trên “giá trị chỉ mục” của chúng. Thông thường nhất, đây là một giá trị số nguyên trên mỗi hàng, giá trị này tăng từ 0 khi bạn tải dữ liệu lần đầu tiên vào Pandas. Bạn có thể xem chỉ mục khi chạy “data. head[]” ở phía bên trái của chế độ xem dạng bảng. Bạn có thể truy cập trực tiếp vào đối tượng chỉ mục bằng cách sử dụng “data. chỉ mục” và các giá trị thông qua “dữ liệu. mục lục. giá trị”

Chỉ mục DataFrame được hiển thị ở phía bên trái của DataFrame khi được xem trước. Trong ví dụ này, một chỉ mục số nguyên đơn giản đang được sử dụng, đây là chỉ mục mặc định sau khi tải dữ liệu từ tệp CSV hoặc Excel vào Khung dữ liệu Pandas

Để thả một hàng cụ thể khỏi khung dữ liệu – chỉ định giá trị chỉ mục của nó cho chức năng thả Pandas

# delete a single row by index value 0
data = data.drop[labels=0, axis=0]

# delete a few specified rows at index values 0, 15, 20.
# Note that the index values do not always align to row numbers.
data = data.drop[labels=[1,15,20], axis=0]

# delete a range of rows - index values 10-20
data = data.drop[labels=range[40, 45], axis=0]

# The labels parameter name can be omitted, and axis is 0 by default
# Shorter versions of the above:
data = data.drop[0]
data = data.drop[[0, 15, 20]]
data = data.drop[range[10,20]]

Nó có thể hữu ích cho việc lựa chọn và tổng hợp để có một chỉ mục có ý nghĩa hơn. Đối với dữ liệu mẫu của chúng tôi, cột "tên" cũng sẽ tạo một chỉ mục tốt và giúp dễ dàng chọn các hàng quốc gia để xóa khỏi dữ liệu

# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
0
Theo mặc định, chỉ số là số nguyên tăng dần khi dữ liệu được tải lần đầu. Nếu dữ liệu của bạn bao gồm một cột xác định cho mỗi hàng, hãy sử dụng Pandas DataFrame. hàm set_index[] cho phép bạn sử dụng cột đó làm chỉ mục để chọn hàng và vẽ đồ thị dễ dàng.
# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
1

Xóa hàng dựa trên số hàng

Đôi khi, chỉ mục DataFrame có thể không theo thứ tự tăng dần. Để xóa một hàng dựa trên vị trí của nó trong DataFrame, tôi. e. "xóa hàng thứ hai", chúng tôi vẫn sử dụng chỉ mục của DataFrame, nhưng chọn hàng từ chỉ mục trực tiếp khi chúng tôi xóa. Chúng tôi cũng có thể sử dụng các lựa chọn chỉ mục này để xóa nhiều hàng hoặc lập chỉ mục từ cuối DataFrame bằng số âm. Ví dụ

# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
2

Xóa hàng dựa trên giá trị cột bằng cách sử dụng lựa chọn [iloc/loc]

Yêu cầu phổ biến thứ hai để xóa các hàng khỏi DataFrame là xóa các hàng theo nhóm, được xác định bởi các giá trị trên các cột khác nhau. Cách tốt nhất để đạt được điều này là thực sự “lựa chọn” dữ liệu mà bạn muốn giữ lại. Phương pháp "thả" không hữu ích ở đây và thay vào đó, chúng tôi đang chọn dữ liệu bằng cách sử dụng bộ chỉ mục "loc" và chỉ định các giá trị mong muốn trong [các] cột mà chúng tôi đang sử dụng để chọn

Có một bài đăng blog đầy đủ về Pandas DataFrame iloc và lựa chọn loc trên blog này, nhưng một ví dụ cơ bản là ở đây

# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
3

Lưu ý - nếu bạn gặp lỗi Pandas.

# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
7, thì rất có thể bạn đã bỏ qua dấu ngoặc đơn “[ ]” xung quanh mỗi điều kiện lựa chọn vị trí của mình

Xóa các hàng bằng cách cắt bớt DataFrame

Một cách cuối cùng để xóa các hàng khỏi DataFrame là sử dụng ký hiệu “lát” Python. Ký hiệu lát được tóm tắt tốt trong bài đăng StackOverflow này

# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
0

Ký hiệu lát cắt giúp dễ dàng xóa nhiều hàng khỏi DataFrame, trong khi vẫn giữ lại “lát cắt” đã chọn. Ví dụ

# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
1

Bỏ "tại chỗ" hoặc trả lại DataFrame mới

Chức năng thả có thể được sử dụng để thay đổi trực tiếp Khung dữ liệu Pandas mà bạn đang làm việc hoặc, cách khác, trả về kết quả sau khi các cột hoặc hàng đã bị loại bỏ. Hành vi này được kiểm soát bằng tham số “inplace”. Việc sử dụng inplace=True có thể giảm số lệnh gán lại mà bạn sẽ cần trong ứng dụng hoặc tập lệnh của mình. Lưu ý rằng nếu inplace được đặt là True, thì không có giá trị trả về từ hàm drop

# Delete a single column from the DataFrame
data = data.drop[labels="deathes", axis=1]

# Delete multiple columns from the DataFrame
# Here - we provide a list to the drop[] function
data = data.drop[labels=["deaths", "deaths_per_million"], axis=1]

# Note that the "labels" parameter is by default the first, so 
# the above lines can be written slightly more concisely:
data = data.drop["deaths", axis=1]
data = data.drop[["deaths", "deaths_per_million"], axis=1]
2

Đọc thêm và liên kết

Vì việc xóa các cột và hàng là một trong những thao tác chính đối với DataFrames, nên có rất nhiều nội dung xuất sắc trên hàm drop, điều này sẽ giải thích bất kỳ yêu cầu bất thường nào mà bạn có thể có. Tôi quan tâm đến bất kỳ yếu tố xóa hàng hoặc cột nào không có trong hướng dẫn ở trên – vui lòng cho tôi biết trong phần nhận xét

Chủ Đề