Pandas: cara membuat kolom boolean berdasarkan kondisi


Anda dapat menggunakan sintaks dasar berikut untuk membuat kolom Boolean berbasis kondisi di pandas DataFrame:

 df[' boolean_column '] = np. where (df[' some_column '] > 15, True , False )

Sintaks khusus ini membuat kolom Boolean baru dengan dua kemungkinan nilai:

  • Benar jika nilai di some_column lebih besar dari 15.
  • Salah jika nilai di some_column kurang dari atau sama dengan 15.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: Membuat Kolom Boolean Berdasarkan Kondisi di Pandas

Misalkan kita memiliki pandas DataFrame berikut yang berisi informasi tentang berbagai pemain bola basket:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [5, 17, 7, 19, 12, 13, 9, 24]})

#view DataFrame
print (df)

  team points
0 to 5
1 to 17
2 to 7
3 to 19
4 B 12
5 B 13
6 B 9
7 B 24   

Kita dapat menggunakan kode berikut untuk membuat kolom baru bernama good_player yang mengembalikan True jika nilai di kolom poin lebih besar dari 15 atau False sebaliknya:

 import numpy as np

#create new boolean column based on value in points column
df[' good_player '] = np. where (df[' points '] > 15, True , False )

#view updated DataFrame
print (df)

  team points good_player
0 To 5 False
1 To 17 True
2 To 7 False
3 To 19 True
4 B 12 False
5 B 13 False
6 B 9 False
7 B 24 True

Perhatikan bahwa kolom baru bernama good_player hanya berisi dua nilai: True atau False .

Kita dapat menggunakan fungsi dtypes() untuk memverifikasi bahwa kolom good_player yang baru memang merupakan kolom Boolean:

 #display data type of good_player column
df[' good_player ']. dtype

dtype('bool')

Kolom good_player yang baru memang merupakan kolom Boolean.

Perhatikan juga bahwa Anda dapat mengembalikan nilai numerik seperti 1 dan 0 alih-alih Benar dan Salah jika Anda ingin:

 import numpy as np

#create new boolean column based on value in points column
df[' good_player '] = np. where (df[' points '] > 15, 1 , 0 )

#view updated DataFrame
print (df)

  team points good_player
0 to 5 0
1 To 17 1
2 to 7 0
3 A 19 1
4 B 12 0
5 B 13 0
6 B 9 0
7 B 24 1

Kolom good_player sekarang berisi 1 jika nilai terkait di kolom poin lebih besar dari 15.

Jika tidak, ini berisi nilai 0 .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:

Cara memilih baris berdasarkan beberapa kondisi di Pandas
Cara membuat kolom baru berdasarkan kondisi di Pandas
Cara memfilter Pandas DataFrame pada berbagai kondisi

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *