Gán giá trị cho biến dựa trên điều kiện python

Có nhiều lúc bạn có thể cần đặt giá trị cột Pandas dựa trên điều kiện của cột khác. Trong bài đăng này, bạn sẽ tìm hiểu tất cả các cách khác nhau để bạn có thể tạo các cột có điều kiện Pandas

Mục lục

Video hướng dẫn

Nếu bạn muốn làm theo hướng dẫn bằng video, hãy xem video của tôi bên dưới

Đang tải một khung dữ liệu mẫu

Hãy bắt đầu bằng cách tải một khung dữ liệu Pandas mẫu mà chúng ta có thể sử dụng trong suốt hướng dẫn này

Chúng tôi sẽ bắt đầu bằng cách nhập gấu trúc và tải khung dữ liệu bằng phương thức

      Name  Age Birth City Gender
0     Jane   23     London      F
1  Melissa   45      Paris      F
2     John   35    Toronto      M
3     Matt   64    Atlanta      M
7

import pandas as pd

df = pd.DataFrame.from_dict[
    {
        'Name': ['Jane', 'Melissa', 'John', 'Matt'],
        'Age': [23, 45, 35, 64],
        'Birth City': ['London', 'Paris', 'Toronto', 'Atlanta'],
        'Gender': ['F', 'F', 'M', 'M']
    }
]

print[df]

Điều này trả về khung dữ liệu sau

      Name  Age Birth City Gender
0     Jane   23     London      F
1  Melissa   45      Paris      F
2     John   35    Toronto      M
3     Matt   64    Atlanta      M

Sử dụng Pandas loc để đặt Pandas có điều kiện cột

Pandas loc cực kỳ mạnh mẽ. Nếu bạn cần xem lại loc [hoặc iloc],. Pandas' loc tạo mặt nạ boolean, dựa trên một điều kiện. Đôi khi, điều kiện đó có thể chỉ là chọn hàng và cột, nhưng nó cũng có thể được sử dụng để lọc các khung dữ liệu. Các khung dữ liệu được lọc này sau đó có thể có các giá trị được áp dụng cho chúng

Hãy khám phá cú pháp một chút

df.loc[df[‘column’] condition, ‘new column name’] = ‘value if condition is met’

Với cú pháp trên, chúng tôi lọc khung dữ liệu bằng cách sử dụng

      Name  Age Birth City Gender
0     Jane   23     London      F
1  Melissa   45      Paris      F
2     John   35    Toronto      M
3     Matt   64    Atlanta      M
8 và sau đó gán giá trị cho bất kỳ hàng nào trong cột [hoặc các cột] nơi điều kiện được đáp ứng

Hãy thử điều này bằng cách chỉ định chuỗi 'Dưới 30' cho bất kỳ ai có độ tuổi dưới 30 và 'Trên 30' cho bất kỳ ai từ 30 tuổi trở lên

df['Age Category'] = 'Over 30'
df.loc[df['Age'] < 30, 'Age Category'] = 'Under 30'

Hãy xem những gì chúng tôi đã làm ở đây

  1. Chúng tôi đã gán chuỗi 'Trên 30' cho mọi bản ghi trong khung dữ liệu. Để tìm hiểu thêm về điều này, hãy xem bài đăng của tôi tại đây hoặc tạo các cột mới
  2. Sau đó, chúng tôi sử dụng
          Name  Age Birth City Gender
    0     Jane   23     London      F
    1  Melissa   45      Paris      F
    2     John   35    Toronto      M
    3     Matt   64    Atlanta      M
    8 để tạo mặt nạ boolean trên cột Tuổi để lọc xuống các hàng có tuổi nhỏ hơn 30. Khi đáp ứng điều kiện này, cột Danh mục Độ tuổi được gán giá trị mới 'Dưới 30 tuổi'

Nhưng điều gì xảy ra khi bạn có nhiều điều kiện? . Hãy xem làm thế nào chúng ta có thể thực hiện điều này bằng cách sử dụng phương thức

df.loc[df[‘column’] condition, ‘new column name’] = ‘value if condition is met’
1 của numpy

Sử dụng Numpy Select để đặt giá trị bằng nhiều điều kiện

Tương tự như phương pháp trên để sử dụng

      Name  Age Birth City Gender
0     Jane   23     London      F
1  Melissa   45      Paris      F
2     John   35    Toronto      M
3     Matt   64    Atlanta      M
8 để tạo cột điều kiện trong Pandas, chúng ta có thể sử dụng phương pháp numpy
df.loc[df[‘column’] condition, ‘new column name’] = ‘value if condition is met’
1

Hãy bắt đầu bằng cách nhập numpy và chúng tôi sẽ đặt cho nó bí danh thông thường là

df.loc[df[‘column’] condition, ‘new column name’] = ‘value if condition is met’
4

import numpy as np

Bây giờ, giả sử chúng ta muốn áp dụng một số nhóm tuổi khác nhau, như bên dưới

  • = 20] & [df['Age'] < 40], [df['Age'] >= 40] & [df['Age'] < 59], [df['Age'] >= 60] ] values = ['

Chủ Đề