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